diff --git a/code/defmacro.lisp b/code/defmacro.lisp
index 2536722f0be6326a95610372f82b7bf5241df9a2..618f55a8ad6372a343ce51a8ddb59f7a25231016 100644
--- a/code/defmacro.lisp
+++ b/code/defmacro.lisp
@@ -325,13 +325,13 @@
 (defun lookup-keyword (keyword key-list)
   (do ((remaining key-list (cddr remaining)))
       ((endp remaining))
-    (when (eq keyword (car key-list))
-      (return (cadr key-list)))))
+    (when (eq keyword (car remaining))
+      (return (cadr remaining)))))
 
 (defun keyword-supplied-p (keyword key-list)
   (do ((remaining key-list (cddr remaining)))
       ((endp remaining))
-    (when (eq keyword (car key-list))
+    (when (eq keyword (car remaining))
       (return t))))