Index: /trunk/source/level-0/l0-numbers.lisp
===================================================================
--- /trunk/source/level-0/l0-numbers.lisp	(revision 13582)
+++ /trunk/source/level-0/l0-numbers.lisp	(revision 13583)
@@ -1157,5 +1157,8 @@
        (number-case divisor
          (fixnum (if (eq divisor 1) (values number 0) (%fixnum-truncate number divisor)))
-         (bignum (values 0 number))
+         (bignum (if (eq number target::target-most-negative-fixnum)
+		   (with-small-bignum-buffers ((bn number))
+		     (bignum-truncate bn divisor))
+		   (values 0 number)))
          (double-float (truncate-rat-dfloat number divisor))
          (short-float (truncate-rat-sfloat number divisor))
@@ -1164,5 +1167,6 @@
                   (values q (- number (* q divisor)))))))
       (bignum (number-case divisor
-                (fixnum (if (eq divisor 1) (values number 0)
+                (fixnum (if (eq divisor 1)
+			  (values number 0)
                           (if (eq divisor target::target-most-negative-fixnum);; << aargh
                             (with-small-bignum-buffers ((bd divisor))
