Thanks Dave,

I added the code below in the MainLoop to check out your explanation and I can see that the timing is correct at 4 MHz and runs twice as fast at 8 MHz, that's cool!

Code:
   IF Push_Button = Is_Pressed THEN
      OSCCON = MHz8
   ELSE
      OSCCON = MHz4
   ENDIF
Thanks
jessey