I doubt it... It is a brandnew one!
What I find extremely strange, is that it seems the status of PORTB.x is not read in:
Code:
if PORTB.0 = 1 then 
    Serout2 PORTB.7, 16384+12, [144, 44, 127]    ' Rewind
  endif
But IS read in:
Code:
Debounce:
  Pause 20                                          ' ? shorter ?
  If (PORTB.0=1) or (PORTB.1=1) or (PORTB.2=1) or (PORTB.3=1) or (PORTB.4=1) then
    PORTB.6 = 1                                   ' ADDED TO CHECK!! 
    goto Debounce                                ' Button still pressed?
  else
    PORTB.6 = 0                                   ' ADDED TO CHECK!!
  endif  
  Goto Progstart
If it was a faulty PIC, this wouldn't work in both cases.