modifed trap.c trapd