You remove a handler from the handler chain by passing an IOStdReq to the device IND_REMHANDLER set in io_Command and a pointer to the Interrupt structure used to add the handler. struct Interrupt *InputHandler; struct IOStdReq *InputIO; InputIO->io_Data=(APTR)InputHandler; /* Which handler to REM */ InputIO->io_Command=IND_REMHANDLER; /* The REM command */ DoIO((struct IORequest *)InputIO); /* Send the command */