Index: /trunk/source/compiler/X86/x862.lisp
===================================================================
--- /trunk/source/compiler/X86/x862.lisp	(revision 15379)
+++ /trunk/source/compiler/X86/x862.lisp	(revision 15380)
@@ -2014,4 +2014,7 @@
              (unscaled-idx nil)
              (src nil))
+        (when index-known-fixnum
+          (unless (>= index-known-fixnum 0)
+            (setq index-known-fixnum nil)))
         (if (or safe (not index-known-fixnum))
           (multiple-value-setq (src unscaled-idx)
@@ -2286,4 +2289,6 @@
            (src nil)
            (unscaled-idx nil))
+      (when (and index-known-fixnum (< index-known-fixnum 0))
+        (setq index-known-fixnum nil))
       (with-imm-target () (target :natural)
         (if (or safe (not index-known-fixnum))
@@ -2719,4 +2724,6 @@
            (needs-memoization (and is-node (x862-acode-needs-memoization value)))
            (index-known-fixnum (acode-fixnum-form-p index)))
+      (when (and index-known-fixnum (< index-known-fixnum 0))
+        (setq index-known-fixnum nil))
       (let* ((src (target-arch-case
 		   (:x8632 ($ x8632::temp0))
