diff --git a/code/macros.lisp b/code/macros.lisp
index cf07145279c46c5a33be470327f34af5eccfc391..084dc43a4ebafce2f8be85767678d042b51e2a8c 100644
--- a/code/macros.lisp
+++ b/code/macros.lisp
@@ -1421,10 +1421,12 @@
   (cond ((numberp count)
          `(do ((,var 0 (1+ ,var)))
               ((>= ,var ,count) ,result)
+	    (declare (type unsigned-byte ,var))
             ,@body))
         (t (let ((v1 (gensym)))
              `(do ((,var 0 (1+ ,var)) (,v1 ,count))
                   ((>= ,var ,v1) ,result)
+		(declare (type unsigned-byte ,var))
                 ,@body)))))