Index: /trunk/ccl/lib/arrays-fry.lisp
===================================================================
--- /trunk/ccl/lib/arrays-fry.lisp	(revision 260)
+++ /trunk/ccl/lib/arrays-fry.lisp	(revision 261)
@@ -397,5 +397,5 @@
   (let ((rank  (array-rank array))
         (nsubs (%lexpr-count subscripts)))
-    (declare (fixnum sum rank))    
+    (declare (fixnum nsubs rank))    
     (if (not (eql nsubs rank))
       (%err-disp $xndims array nsubs)
@@ -405,8 +405,12 @@
               (dim (array-dimension array i) (array-dimension array i)))
              (nil)
-          (declare (fixnum i))
+          (declare (fixnum i dim))
           (let ((s  (%lexpr-ref subscripts nsubs i)))
-            (require-type s 'fixnum)
-            (if (or (< s 0)(>= s dim)) (return nil))
+	    (if (typep s 'fixnum)
+	      (locally (declare (fixnum s))
+		(if (or (< s 0)(>= s dim)) (return nil)))
+	      (if (typep s 'bignum)
+		(return nil)
+		(report-bad-arg s 'integer)))
             (when (eql i 0) (return t))))))))
 
