diff --git a/code/old-loop.lisp b/code/old-loop.lisp
index 620ed46f6b5e07ce26bc8eb2285eaa9655be87cf..7141c5c2321d474c6de3c432a19047f1d874efbf 100644
--- a/code/old-loop.lisp
+++ b/code/old-loop.lisp
@@ -7,12 +7,10 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/old-loop.lisp,v 1.8 1991/05/24 19:37:33 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/old-loop.lisp,v 1.9 1994/08/23 18:07:29 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/old-loop.lisp,v 1.8 1991/05/24 19:37:33 wlott Exp $
-;;;
 ;;; Loop facility, written by William Lott.
 ;;; 
 (in-package "LOOP")
@@ -675,10 +673,16 @@
 
 
 (defun maybe-parse-unconditional ()
-  (when (loop-keyword-p (car *remaining-stuff*) "DO" "DOING")
-    (pop *remaining-stuff*)
-    (setf *body-forms* (nconc *body-forms* (parse-expr-list)))
-    t))
+  (cond ((loop-keyword-p (car *remaining-stuff*) "DO" "DOING")
+	 (pop *remaining-stuff*)
+	 (setf *body-forms* (nconc *body-forms* (parse-expr-list)))
+	 t)
+	((loop-keyword-p (car *remaining-stuff*) "RETURN")
+	 (pop *remaining-stuff*)
+	 (setf *body-forms*
+	       (nconc *body-forms* `((return ,(pop *remaining-stuff*)))))
+	 t)))
+
 
 (defun maybe-parse-conditional ()
   (let ((clause (pop *remaining-stuff*)))