diff --git a/clx/clx.lisp b/clx/clx.lisp
index ab87349231dd132e6f183950124968b06f60d3c7..0dea20d2220888a8fae9e8f5c3a6c4d6e611154c 100644
--- a/clx/clx.lisp
+++ b/clx/clx.lisp
@@ -83,7 +83,7 @@
 (pushnew :clx *features*)
 (pushnew :xlib *features*)
 
-(defparameter *version* "MIT R5.01")
+(defparameter *version* "MIT R5.02")
 (pushnew :clx-mit-r4 *features*)
 (pushnew :clx-mit-r5 *features*)
 
diff --git a/clx/dependent.lisp b/clx/dependent.lisp
index 4d7cf24222d4c5548024cfff9904a50a519508d4..2da3615b7f1116e5e9c2d310756fd56b88ac63d9 100644
--- a/clx/dependent.lisp
+++ b/clx/dependent.lisp
@@ -2528,7 +2528,7 @@
 
 (defun getenv (name)
   #+excl (sys:getenv name)
-  #+lcl3.0 (lcl:environment-value name)
+  #+lcl3.0 (lcl:environment-variable name)
   #+CMU (cdr (assoc name ext:*environment-list* :test #'string=))
   #-(or excl lcl3.0 CMU) (progn name nil))
 
diff --git a/clx/input.lisp b/clx/input.lisp
index ecf33ee29aa9288da5676052438d3b0d6c181c4f..1d5ae1414f57b8c7290dacd204111fe5f3bd3097 100644
--- a/clx/input.lisp
+++ b/clx/input.lisp
@@ -1803,7 +1803,7 @@
   ;;       macros for getting error fields. See DECODE-CORE-ERROR for
   ;;       an example.
   (declare (type symbol error-key)
-	   (type function function))
+	   (type (or symbol list) function))
   ;; First ensure the name is for a declared extension
   (unless (or (find error-key *xerror-vector*)
 	      (dolist (extension *extensions*)
diff --git a/clx/macros.lisp b/clx/macros.lisp
index faf64da7b7ab8e48903ec11bd2442e821574aa4c..0e416e83c0e1f8f69e8f831aced1931048da7bda 100644
--- a/clx/macros.lisp
+++ b/clx/macros.lisp
@@ -218,7 +218,7 @@
    (let ((value (gensym)))
      `(let ((,value (read-card8 ,index)))
 	(declare (type (integer 0 (,(length keywords))) ,value))
-	(type-check ,value (integer 0 (,(length keywords))))
+	(type-check ,value '(integer 0 (,(length keywords))))
 	(svref ',(apply #'vector keywords) ,value))))
   ((index thing &rest keywords)
    `(write-card8 ,index (position ,thing
@@ -238,7 +238,7 @@
    (let ((value (gensym)))
      `(let ((,value (read-card16 ,index)))
 	(declare (type (integer 0 (,(length keywords))) ,value))
-	(type-check ,value (integer 0 (,(length keywords))))
+	(type-check ,value '(integer 0 (,(length keywords))))
 	(svref ',(apply #'vector keywords) ,value))))
   ((index thing &rest keywords)
    `(write-card16 ,index (position ,thing
@@ -258,7 +258,7 @@
    (let ((value (gensym)))
      `(let ((,value (read-card29 ,index)))
 	(declare (type (integer 0 (,(length keywords))) ,value))
-	(type-check ,value (integer 0 (,(length keywords))))
+	(type-check ,value '(integer 0 (,(length keywords))))
 	(svref ',(apply #'vector keywords) ,value))))
   ((index thing &rest keywords)
    `(write-card29 ,index (position ,thing
@@ -307,7 +307,7 @@
    (let ((value (gensym)))
      `(let ((,value (read-card29 ,index)))
 	(declare (type (integer 0 (,(length *boole-vector*))) ,value))
-	(type-check ,value (integer 0 (,(length *boole-vector*))))
+	(type-check ,value '(integer 0 (,(length *boole-vector*))))
 	(svref *boole-vector* ,value))))
   ((index thing)
    `(write-card29 ,index (position ,thing (the simple-vector *boole-vector*))))