Thanks Sougata, I changed that bit and now it works as expected.

A single bit keep me puzzled half week, you gotta love pics...

Here is the working example, so others can learn too:

Code:
@ device pic16F628A, intrc_osc_noclkout, wdt_on, mclr_off, protect_off
DEFINE OSC 4

trisb   =%11111111
trisa   =%00000000
cmcon   =%00000111  'Comparators Off
vrcon   =%00000000
intcon  =%10001000'interrupts enable // was  %10101000  
'OPTION_REG =%11010001 

but1    var PORTB.4
but2    var PORTB.5
ledwork var PORTA.0
led1    var PORTA.1
led2    var PORTA.2
led3    var PORTA.3
rs      var PORTb.2


conta   var byte

porta=0
portb=0

on interrupt goto interrupcion

SerOut rs,2,[" ",10,13]
SerOut rs,2,["Begin",10,13]


LOOP:

SerOut rs,2,["Loop",10,13]

for conta=0 to 255 step 16  'working led rise routine
    pwm ledwork, conta, 10  
next conta
high ledwork

for conta =0 to 10
    pause 10
next conta

low led1   'set button status leds off
low led2
low led3


goto loop

end
disable 
interrupcion:
SerOut rs,2,["Interrupt",10,13]
    intcon.0=0
    intcon.1=0
    intcon.2=0
        if but1=1 then
             but1=0
            high led1
            SerOut rs,2,["Set",10,13]

        endif
        if but2=1 then
             but2=0
           high led2
           SerOut rs,2,["Mode",10,13]
        endif
high led3       

    resume
enable
I commented out the OPTION_REG because the program worked ok with and without it. Of course the serouts can be removed, I use them to know where the program is.

Thanks to all for the help provided


Pablo