Dick,

I think your on to the right answer...
Here is what I did to detect between a timer overflow vs a button push with a 12f683

Code:
MyInt:
  
  inttype = PIR1 & %00000001  'check if timer1 overflow occured
  if inttype = 1 then goto TimerInt
  
  goto buttonint  'interrupt was gpio.3
then i clear the interupt flag here...
Code:
ExitInt:
   intcon.0 = 0
   PIR1.0 = 0
   resume

enable