Index: /trunk/source/level-1/x86-trap-support.lisp
===================================================================
--- /trunk/source/level-1/x86-trap-support.lisp	(revision 13878)
+++ /trunk/source/level-1/x86-trap-support.lisp	(revision 13879)
@@ -358,4 +358,6 @@
     (defconstant float-inexact-code
       (conditional-os-constant '(os::FPE_FLTRES os::EXCEPTION_FLT_INEXACT_RESULT)))))
+
+(defparameter *pending-gc-notification-hook* nil)
 
 ;;; UUOs are handled elsewhere.  This should handle all signals other than
@@ -467,5 +469,10 @@
                                      :write-p (not (zerop code)))
                      ()
-                     frame-ptr))))
+                     frame-ptr)))
+          ((= signal #$SIGTRAP)
+           (when (= code 0)
+             (let* ((hook *pending-gc-notification-hook*))
+               (declare (special *pending-gc-notification-hook*))
+               (when hook (funcall hook))))))
     skip))
 
