diff --git a/lisp/hppa-arch.c b/lisp/hppa-arch.c
index f1e8fa77a5061dcdb80008f10203b41d46316395..acccd81161d8577c48ab34d0d5115254ad03f8f2 100644
--- a/lisp/hppa-arch.c
+++ b/lisp/hppa-arch.c
@@ -119,6 +119,11 @@ static void sigtrap_handler(int signal, int code, struct sigcontext *scp)
 	    fake_foreign_function_call(scp);
 	    lose("%%primitive halt called; the party is over.\n");
 
+	  case trap_PendingInterrupt:
+	    arch_skip_instruction(scp);
+	    interrupt_handle_pending(scp);
+	    break;
+
 	  case trap_Error:
 	  case trap_Cerror:
 	    interrupt_internal_error(signal, code, scp, im5==trap_Cerror);