diff --git a/changelog b/changelog
index 1f43604..0ad9d34 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20100310 tpd src/axiom-website/patches.html 2010310.01.tpd.patch
+20100310 tpd src/interp/vmlisp.lisp fix )set break resume bug
 20100309 tpd src/axiom-website/patches.html 2010309.01.tpd.patch
 20100309 tpd src/input/wester.input reformat into regression test file
 20100306 tpd src/axiom-website/patches.html 2010306.01.tzk.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 7eab972..b73ed8a 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2513,5 +2513,7 @@ src/axiom-website/download.html git-clone to git clone<br/>
 books/bookvol5 treeshake vmlisp, bookvol10.3 defstream bug fix<br/>
 <a href="patches/20100309.01.tpd.patch">20100309.01.tpd.patch</a>
 src/input/wester.input reformat into regression test file<br/>
+<a href="patches/20100310.01.tpd.patch">20100310.01.tpd.patch</a>
+src/interp/vmlisp.lisp fix )set break resume bug<br/>
  </body>
 </html>
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet
index 9fed12e..a0822d5 100644
--- a/src/interp/vmlisp.lisp.pamphlet
+++ b/src/interp/vmlisp.lisp.pamphlet
@@ -4576,12 +4576,30 @@ terminals and empty or at-end files.  In Common Lisp, we must assume record size
  (load eval)
  (unembed 'system:universal-error-handler)
  (embed 'system:universal-error-handler
-  '(lambda (type correctable? op continue-string error-string &rest args)
-    (block
-     nil
-     (setq |$NeedToSignalSessionManager| T)
-     (apply system:universal-error-handler type correctable? op
-            continue-string error-string args )))))
+            '(lambda (type correctable? op
+                           continue-string error-string &rest args)
+               (block
+                nil
+                (setq |$NeedToSignalSessionManager| T)
+                (if (boundp '|$BreakMode|)
+                    (cond ((eq |$BreakMode| '|validate|)
+                           (|systemError| (error-format error-string args)))
+                          ((and (eq |$BreakMode| '|trapNumerics|)
+                                (eq type :ERROR))
+                           (setq |$BreakMode| nil)
+                           (throw '|trapNumerics| |$numericFailure|))
+                          ((and (eq |$BreakMode| '|trapNumerics|)
+                                (boundp '|$oldBreakMode|)
+                                (setq |$BreakMode| |$oldBreakMode|)
+                                nil)) ;; resets error handler
+                          ((memq |$BreakMode| '(|nobreak| |query| |resume|))
+                            (|systemError| (error-format error-string args)))
+                          ((eq |$BreakMode| '|letPrint2|)
+                           (setq |$BreakMode| nil)
+                           (throw '|letPrint2| nil))))
+                (apply system:universal-error-handler type correctable? op
+                       continue-string error-string args )))))
+
 
 
 ;;;  @(#)debug.lisp	2.5      90/02/15  10:27:33
