diff --git a/pcl/slots-boot.lisp b/pcl/slots-boot.lisp
index b5846ba7efdd7be344e06b1823cf92edc2993fc8..f6dedd536d112c22a0f62ee017afb645946db071 100644
--- a/pcl/slots-boot.lisp
+++ b/pcl/slots-boot.lisp
@@ -26,7 +26,7 @@
 ;;;
 
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/slots-boot.lisp,v 1.19 2003/04/25 17:43:50 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/slots-boot.lisp,v 1.20 2003/04/28 15:18:49 gerd Exp $")
 ;;;
 
 (in-package :pcl)
@@ -95,11 +95,18 @@
 					     slot-name)))))
     (unless (fboundp gf-name)
       (let ((gf (ensure-generic-function gf-name)))
+	;;
+	;; Initialize this here, In case the LOAD-TIME-VALUE is
+	;; executed before INITIALIZE-INTERNAL-SLOT-FUNCTIONS had a
+	;; chance to run.
+	(unless (gethash slot-name *name->class->slotd-table*)
+	  (setf (gethash slot-name *name->class->slotd-table*)
+		(make-hash-table :test 'eq)))
+	(setf (plist-value gf 'slot-missing-method) t)
 	(ecase type
 	  (reader (add-slot-missing-method gf slot-name 'slot-value))
 	  (boundp (add-slot-missing-method gf slot-name 'slot-boundp))
-	  (writer (add-slot-missing-method gf slot-name 'setf)))
-	(setf (plist-value gf 'slot-missing-method) t))
+	  (writer (add-slot-missing-method gf slot-name 'setf)))))
       t)))
 
 (defmacro accessor-slot-value (object slot-name)