>reset itself. If the 'on' lap between the relays is longer, no problem >occurs. Any suggestion for this 'fast' start? Have the PIC drive a transistor which can handle several times the current required by the coil in the relay. You might not be resetting the PIC, but the relay might not have enough amps to flip to the new state reliably. Often a large cap can be discharged through the windings to make this happen quicker. Do not update the pins directly. Instead, update a "shadow" of the port, then write the new value directly to the port. This is standard practice for reliable applications. shadow_port ds 1 #define relay_1 shadow_port,0 #define relay_2 shadow_port,1 ... bsf relay_1 ; Turn on relay 1 movf shadow_port,w movwf PORTB call delay_50_mS ; wait bsf relay_2 ; Do for relay 2 movf shadow_port,w movwf PORTB ... Andy