diff --git a/code/defmacro.lisp b/code/defmacro.lisp
index 1260f8dc8a1d255914492e1e8f2eda8c41a6ede7..b974be5dc1a635dd107e55281b2fa5e632fdea57 100644
--- a/code/defmacro.lisp
+++ b/code/defmacro.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/defmacro.lisp,v 1.23 2002/11/02 23:18:21 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/defmacro.lisp,v 1.24 2003/02/24 10:04:10 emarsden Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -100,7 +100,7 @@
 	 (cond ((null rest-of-args) nil)
 	       ;; Varlist is dotted, treat as &rest arg and exit.
 	       (t (push-let-binding rest-of-args path nil)
-		  (setf restp t))))
+		  (setf restp :dotted))))
       (let ((var (car rest-of-args)))
 	(cond ((eq var '&whole)
 	       (cond ((and (cdr rest-of-args) (symbolp (cadr rest-of-args)))
@@ -252,7 +252,7 @@
 	       (simple-program-error "Non-symbol in lambda-list - ~S." var)))))
     ;; Generate code to check the number of arguments, unless dotted
     ;; in which case length will not work.
-    (unless restp
+    (unless (eq restp :dotted)
        (push `(unless (<= ,minimum
 			  (length (the list ,(if top-level
 						 `(cdr ,arg-list-name)
diff --git a/pcl/gray-streams-class.lisp b/pcl/gray-streams-class.lisp
index 6411c273d716ab13d6f70b46da19f84be4a8676c..6d66b857066e38566399ca06169428fa30554b0c 100644
--- a/pcl/gray-streams-class.lisp
+++ b/pcl/gray-streams-class.lisp
@@ -4,7 +4,7 @@
 ;;; the Public domain, and is provided 'as is'.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/gray-streams-class.lisp,v 1.2 1998/06/02 02:43:15 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/gray-streams-class.lisp,v 1.3 2003/02/24 10:04:11 emarsden Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -23,25 +23,25 @@
     (:documentation "Base class for all CLOS streams")))
 
 ;;; Define the stream classes.
-(defclass fundamental-input-stream (fundamental-stream))
+(defclass fundamental-input-stream (fundamental-stream) ())
 
-(defclass fundamental-output-stream (fundamental-stream))
+(defclass fundamental-output-stream (fundamental-stream) ())
 
-(defclass fundamental-character-stream (fundamental-stream))
+(defclass fundamental-character-stream (fundamental-stream) ())
 
-(defclass fundamental-binary-stream (fundamental-stream))
+(defclass fundamental-binary-stream (fundamental-stream) ())
 
 (defclass fundamental-character-input-stream
-    (fundamental-input-stream fundamental-character-stream))
+    (fundamental-input-stream fundamental-character-stream) ())
 
 (defclass fundamental-character-output-stream
-    (fundamental-output-stream fundamental-character-stream))
+    (fundamental-output-stream fundamental-character-stream) ())
 
 (defclass fundamental-binary-input-stream
-    (fundamental-input-stream fundamental-binary-stream))
+    (fundamental-input-stream fundamental-binary-stream) ())
 
 (defclass fundamental-binary-output-stream
-    (fundamental-output-stream fundamental-binary-stream))
+    (fundamental-output-stream fundamental-binary-stream) ())
 
 
 ;;; Example character input and output streams.