diff --git a/changelog b/changelog
index ecabda5..4330241 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20091002 tpd src/axiom-website/patches.html 20091002.04.tpd.patch
+20091002 tpd src/interp/i-spec2.lisp cleanup
 20091002 tpd src/axiom-website/patches.html 20091002.03.tpd.patch
 20091002 tpd src/input/Makefile
 20091002 tpd src/input/rubey.input
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 991b3ce..cfdc33d 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2085,5 +2085,7 @@ src/interp/i-toplev.lisp cleanup<br/>
 src/interp/i-syscmd.lisp cleanup<br/>
 <a href="patches/20091002.03.tpd.patch">20091002.03.tpd.patch</a>
 src/input/rubey.input added<br/>
+<a href="patches/20091002.04.tpd.patch">20091002.04.tpd.patch</a>
+src/interp/i-spec2.lisp cleanup<br/>
  </body>
 </html>
diff --git a/src/interp/i-spec2.lisp.pamphlet b/src/interp/i-spec2.lisp.pamphlet
index 7309231..efa5ec4 100644
--- a/src/interp/i-spec2.lisp.pamphlet
+++ b/src/interp/i-spec2.lisp.pamphlet
@@ -75,6 +75,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upDEF| (|t|)
   (PROG (|op| |ISTMP#1| |def| |ISTMP#2| |pred| |ISTMP#3| |v| |mapOp|)
+  (declare (special |$Void| |$e|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -155,6 +156,8 @@ There are several special modes used in these functions:
 (DEFUN |upDollar| (|t|)
   (PROG (|op| |ISTMP#1| |ISTMP#2| |form| |t2| D |f| |u| |val| |nargs|
               |sig| |ms|)
+  (declare (special |$OutputForm| |$genValue| |$immediateDataSymbol|
+                    |$localVars|))
     (RETURN
       (SEQ (COND
              ((NULL (AND (PAIRP |t|)
@@ -383,6 +386,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upLispCall| (|op| |t|)
   (PROG (|lispOp| |argl| |code| |rt|)
+  (declare (special |$genValue|))
     (RETURN
       (SEQ (PROGN
              (COND
@@ -441,6 +445,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upequation| (|tree|)
   (PROG (|op| |ISTMP#1| |lhs| |ISTMP#2| |rhs|)
+  (declare (special |$Boolean|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |tree|)
@@ -474,6 +479,7 @@ There are several special modes used in these functions:
 
 (DEFUN |uperror| (|t|)
   (PROG (|op| |ISTMP#1| |msg| |msgMs|)
+  (declare (special |$mapName| |$String| |$compilingMap|))
     (RETURN
       (COND
         ((NULL |$compilingMap|) NIL)
@@ -501,6 +507,7 @@ There are several special modes used in these functions:
 ;  putModeSet(t,[$Void])
 
 (DEFUN |upfree| (|t|)
+  (declare (special |$Void|))
   (PROGN
     (|putValue| |t| (|objNew| '(|voidValue|) |$Void|))
     (|putModeSet| |t| (CONS |$Void| NIL))))
@@ -510,6 +517,7 @@ There are several special modes used in these functions:
 ;  putModeSet(t,[$Void])
 
 (DEFUN |uplocal| (|t|)
+  (declare (special |$Void|))
   (PROGN
     (|putValue| |t| (|objNew| '(|voidValue|) |$Void|))
     (|putModeSet| |t| (CONS |$Void| NIL))))
@@ -519,6 +527,7 @@ There are several special modes used in these functions:
 ;  var
 
 (DEFUN |upfreeWithType| (|var| |type|)
+  (declare (ignore  |type|))
   (PROGN
     (|sayKeyedMsg| 'S2IS0055
         (CONS (MAKESTRING "free") (CONS |var| NIL)))
@@ -529,6 +538,7 @@ There are several special modes used in these functions:
 ;  var
 
 (DEFUN |uplocalWithType| (|var| |type|)
+  (declare (ignore  |type|))
   (PROGN
     (|sayKeyedMsg| 'S2IS0055
         (CONS (MAKESTRING "local") (CONS |var| NIL)))
@@ -552,6 +562,7 @@ There are several special modes used in these functions:
 
 (DEFUN |uphas| (|t|)
   (PROG (|op| |ISTMP#1| |ISTMP#2| |type| |prop| |catCode| |code|)
+  (declare (special |$Boolean| |$genValue|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -602,6 +613,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upIF| (|t|)
   (PROG (|op| |ISTMP#1| |cond| |ISTMP#2| |a| |ISTMP#3| |b|)
+  (declare (special |$genValue|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -663,7 +675,9 @@ There are several special modes used in these functions:
 ;  putModeSet(op,[m])
 
 (DEFUN |compileIF| (|op| |cond| |a| |b| |t|)
+  (declare (ignore |cond|))
   (PROG (|ms1| |ms2| |m1| |m2| |r| |m|)
+  (declare (special |$mapName| |$declaredMode| |$Exit| |$Void|))
     (RETURN
       (PROGN
         (SPADLET |ms1| (|bottomUp| |a|))
@@ -723,6 +737,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalIF| (|op| G166457 |m|)
   (PROG (|cond| |a| |b| |elseCode| |code| |triple|)
+  (declare (special |$Boolean| |$lastLineInSEQ| |$mapName|))
     (RETURN
       (PROGN
         (SPADLET |cond| (CAR G166457))
@@ -799,6 +814,7 @@ There are several special modes used in these functions:
 (DEFUN |IFcodeTran| (|code| |m| |m1|)
   (PROG (|ISTMP#1| |ISTMP#2| |p1| |ISTMP#3| |ISTMP#4| |ISTMP#5|
             |ISTMP#6| |code'| |a1| |a2|)
+  (declare (special |$Void| |$Exit|))
     (RETURN
       (COND
         ((NULL |code|) |code|)
@@ -868,6 +884,7 @@ There are several special modes used in these functions:
 
 (DEFUN |interpIF| (|op| |cond| |a| |b|)
   (PROG (|val|)
+  (declare (special |$Void| |$Boolean|))
     (RETURN
       (PROGN
         (SPADLET |val| (|getValue| |cond|))
@@ -963,6 +980,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upisAndIsnt| (|t|)
   (PROG (|op| |a| |pattern| |mS| |m|)
+  (declare (special |$Boolean|))
     (RETURN
       (PROGN
         (SPADLET |op| (CAR |t|))
@@ -992,6 +1010,7 @@ There are several special modes used in these functions:
 
 (DEFUN |putPvarModes| (|pattern| |m|)
   (PROG (|um| |ISTMP#1| |var|)
+  (declare (special |$env| |$quadSymbol|))
     (RETURN
       (SEQ (COND
              ((NULL (AND (PAIRP |m|) (EQ (QCAR |m|) '|List|)
@@ -1056,6 +1075,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalis| (|op| G166700 |mode|)
   (PROG (|a| |pattern| |fun| |code| |triple|)
+  (declare (special |$Boolean| |$genValue| |$opIsIs|))
     (RETURN
       (PROGN
         (SPADLET |a| (CAR G166700))
@@ -1138,6 +1158,7 @@ There are several special modes used in these functions:
 
 (DEFUN |compileIs| (|val| |pattern|)
   (PROG (|ISTMP#1| |var| |vars| |g| |predCode| |assignCode|)
+  (declare (special |$opIsIs|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |vars| NIL)
@@ -1236,7 +1257,9 @@ There are several special modes used in these functions:
 ;  false
 
 (DEFUN |evalIsPredicate| (|value| |pattern| |mode|)
+  (declare (ignore |mode|))
   (PROG (|valueAlist| |id|)
+  (declare (special |$env|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |pattern| (|removeConstruct| |pattern|))
@@ -1350,6 +1373,7 @@ There are several special modes used in these functions:
 
 (DEFUN |isPatMatch| (|l| |pats|)
   (PROG (|ISTMP#2| |pat| |restPats| |p| |ISTMP#1| |var| |n| |m|)
+  (declare (special |$subs|))
     (RETURN
       (SEQ (COND
              ((NULL |pats|)
@@ -1456,6 +1480,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upiterate| (|t|)
   (PROG (|code|)
+  (declare (special |$Void| |$repeatBodyLabel| |$genValue| |$iterateCount|))
     (RETURN
       (COND
         ((NULL |$repeatBodyLabel|)
@@ -1483,6 +1508,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upbreak| (|t|)
   (PROG (|op| |ISTMP#1| |code|)
+  (declare (special |$Void| |$repeatLabel| |$genValue| |$breakCount|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -1547,7 +1573,8 @@ There are several special modes used in these functions:
 (DEFUN |upLET| (|t|)
   (PROG (|$declaredMode| |op| |ISTMP#1| |lhs| |ISTMP#2| |rhs| |var|
             |obj| |var'| |m| |rhsMs| |val|)
-    (DECLARE (SPECIAL |$declaredMode|))
+    (DECLARE (SPECIAL |$declaredMode| |$Void| |$Boolean| |$e| |$OutputForm|
+                      |$immediateDataSymbol|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -1693,7 +1720,8 @@ There are several special modes used in these functions:
 (DEFUN |evalLET| (|lhs| |rhs|)
   (PROG (|$useConvertForCoercions| |v'| |ISTMP#1| |t2'| |t1| |t'| |t2|
             |v| |v2| |value|)
-    (DECLARE (SPECIAL |$useConvertForCoercions|))
+    (DECLARE (SPECIAL |$useConvertForCoercions| |$genValue| |$OutputForm|
+                      |$declaredMode| |$env|))
     (RETURN
       (PROGN
         (SPADLET |$useConvertForCoercions| 'T)
@@ -1799,6 +1827,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalLETput| (|lhs| |value|)
   (PROG (|name| |om| |dm| |code|)
+  (declare (special |$genValue| |$env| |$compilingMap| |$e| |$mapName|))
     (RETURN
       (PROGN
         (SPADLET |name| (|getUnname| |lhs|))
@@ -1885,7 +1914,7 @@ There are several special modes used in these functions:
 (DEFUN |upLETWithPatternOnLhs| (|t|)
   (PROG (|$opIsIs| |op| |pattern| |a| |LETTMP#1| |m| |object|
             |failCode| |code|)
-    (DECLARE (SPECIAL |$opIsIs|))
+    (DECLARE (SPECIAL |$opIsIs| |$genValue|))
     (RETURN
       (PROGN
         (SPADLET |op| (CAR |t|))
@@ -1909,7 +1938,7 @@ There are several special modes used in these functions:
                                        NIL))
                                      (CONS
                                       (MAKESTRING
-                                       "is not matched in assignment to right-hand side.")
+                            "is not matched in assignment to right-hand side.")
                                       NIL))))
                              NIL)))
         (COND
@@ -1946,6 +1975,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalLETchangeValue| (|name| |value|)
   (PROG (|localEnv| |val| |clearCompilationsFlag|)
+  (declare (special |$e| |$env|))
     (RETURN
       (PROGN
         (SPADLET |localEnv| (PAIRP |$env|))
@@ -2005,6 +2035,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upLETWithFormOnLhs| (|op| |lhs| |rhs|)
   (PROG (|lhs'| |rhs'| |temps| |let| |t'| |m| |seq| |ms| |tree|)
+  (declare (special |$mapName|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |lhs'| (|getUnnameIfCan| |lhs|))
@@ -2109,6 +2140,7 @@ There are several special modes used in these functions:
 
 (DEFUN |seteltable| (|lhs| |rhs|)
   (PROG (|f| |argl| |g| |ISTMP#1| |expr| |f'| |argl'|)
+  (declare (special |$e|))
     (RETURN
       (PROGN
         (SPADLET |f| (CAR |lhs|))
@@ -2222,6 +2254,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upSetelt| (|op| |lhs| |tree|)
   (PROG (|var| |v1| |m1| |ms|)
+  (declare (special |$declaredMode|))
     (RETURN
       (PROGN
         (SPADLET |var| (|opOf| |lhs|))
@@ -2261,6 +2294,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upTableSetelt| (|op| |lhs| |rhs|)
   (PROG (|htOp| |args| |keyMode| |tableCode| |r| |t|)
+  (declare (special |$genValue|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |htOp| (CAR |lhs|))
@@ -2421,6 +2455,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upLETtype| (|op| |lhs| |type|)
   (PROG (|opName| |mode| |val|)
+  (declare (special |$e| |$env| |$localVars| |$genValue|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |opName| (|getUnname| |lhs|))
@@ -2470,6 +2505,7 @@ There are several special modes used in these functions:
 
 (DEFUN |assignSymbol| (|symbol| |value| |domain|)
   (PROG (|val| |obj|)
+  (declare (special |$e|))
     (RETURN
       (COND
         ((SPADLET |val| (|get| |symbol| '|value| |$e|)) NIL)
@@ -2487,6 +2523,7 @@ There are several special modes used in these functions:
 
 (DEFUN |getInterpMacroNames| ()
   (PROG (|e| |m| |n| |names|)
+  (declare (special |$InteractiveFrame| |$InterpreterMacroAlist|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |names|
@@ -2551,6 +2588,8 @@ There are several special modes used in these functions:
 
 (DEFUN |isInterpMacro| (|name|)
   (PROG (|m| |sv|)
+  (declare (special |$InterpreterMacroAlist| |$InteractiveFrame| |$e| |$env|
+                    |$specialOps|))
     (RETURN
       (COND
         ((NULL (IDENTP |name|)) NIL)
@@ -2577,6 +2616,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upQUOTE| (|t|)
   (PROG (|op| |ISTMP#1| |expr| |m| |ms|)
+  (declare (special |$OutputForm|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -2606,6 +2646,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalQUOTE| (|op| G167484 G167491)
   (PROG (|m| |expr| |triple|)
+  (declare (special |$genValue|))
     (RETURN
       (PROGN
         (SPADLET |m| (CAR G167491))
@@ -2684,6 +2725,7 @@ There are several special modes used in these functions:
 (DEFUN |getReduceFunction| (|op| |type| |result| |locale|)
   (PROG (|ISTMP#1| |var| |arg| |args| |vecOp| |mmS| |cond| |mm| |dc|
             |sig| |fun| |dcVector| |k| |env|)
+  (declare (special |$compilingMap| |$Symbol|))
     (RETURN
       (SEQ (PROGN
              (COND
@@ -3088,7 +3130,7 @@ There are several special modes used in these functions:
   (PROG (|$repeatLabel| |$breakCount| |$repeatBodyLabel|
             |$iterateCount|)
     (DECLARE (SPECIAL |$repeatLabel| |$breakCount| |$repeatBodyLabel|
-                      |$iterateCount|))
+                      |$iterateCount| |$compilingLoop|))
     (RETURN
       (PROGN
         (SPADLET |$repeatLabel| (MKQ (GENSYM)))
@@ -3142,6 +3184,7 @@ There are several special modes used in these functions:
 
 (DEFUN |upREPEAT1| (|t|)
   (PROG (|op| |ISTMP#2| |body| |itrl| |repeatMode| |ISTMP#1| |pred|)
+  (declare (special |$interpOnly| |$Void| |$breakCount|))
     (RETURN
       (SEQ (COND
              ((NULL (AND (PAIRP |t|)
@@ -3216,6 +3259,8 @@ There are several special modes used in these functions:
 
 (DEFUN |evalREPEAT| (|op| G168014 |repeatMode|)
   (PROG (|LETTMP#1| |body| |itrl| |bodyMode| |bodyCode| |code| |val|)
+  (declare (special |$genValue| |$repeatLabel| |$breakCount| |$Void|
+                    |$repeatBodyLabel| |$iterateCount|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |LETTMP#1| (REVERSE G168014))
@@ -3300,7 +3345,8 @@ There are several special modes used in these functions:
 
 (DEFUN |interpREPEAT| (|op| |itrl| |body| |repeatMode|)
   (PROG (|$indexVars| |$indexTypes| |code| |val|)
-    (DECLARE (SPECIAL |$indexVars| |$indexTypes|))
+    (DECLARE (SPECIAL |$indexVars| |$indexTypes| |$repeatLabel|
+                      |$repeatBodyLabel|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |$indexVars| NIL)
@@ -3372,6 +3418,7 @@ There are several special modes used in these functions:
 (DEFUN |interpLoopIter|
        (|exp| |indexList| |indexVals| |indexTypes| |requiredType|)
   (PROG (|v| |val|)
+  (declare (special |$env|))
     (RETURN
       (SEQ (PROGN
              (|emptyAtree| |exp|)
@@ -3425,6 +3472,8 @@ There are several special modes used in these functions:
 
 (DEFUN |upreturn| (|t|)
   (PROG (|op| |ISTMP#1| |val| |val'| |m| |cn|)
+  (declare (special |$Exit| |$genValue| |$mapThrowCount| |$mapReturnTypes|
+                    |$mapName| |$mapTarget| |$interpOnly| |$compilingMap|))
     (RETURN
       (COND
         ((NULL (AND (PAIRP |t|)
@@ -3518,8 +3567,8 @@ There are several special modes used in these functions:
 ;  putValue(op,val)
 
 (DEFUN |evalSEQ| (|op| |args| |m|)
-  (PROG (|LETTMP#1| |last| |argl| |m1| |av| |bodyCode| |c| |code|
-            |val|)
+  (PROG (|LETTMP#1| |last| |argl| |m1| |av| |bodyCode| |c| |code| |val|)
+  (declare (special |$genValue|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |LETTMP#1| (REVERSE |args|))
@@ -3715,6 +3764,7 @@ There are several special modes used in these functions:
 
 (DEFUN |evalTuple| (|op| |l| |m| |tar|)
   (PROG (|agg| |LETTMP#1| |underMode| |code| |val| |val1|)
+  (declare (special |$genValue|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |agg| (CAR |m|))
@@ -3772,6 +3822,7 @@ There are several special modes used in these functions:
 ;  putModeSet(op,[defMode])
 
 (DEFUN |upNullTuple| (|op| |l| |tar|)
+  (declare (ignore |l|))
   (PROG (|a| |ISTMP#1| |b| |defMode| |val| |val'|)
     (RETURN
       (PROGN
@@ -3882,7 +3933,7 @@ There are several special modes used in these functions:
 (DEFUN |upwhere| (|t|)
   (PROG (|$whereCacheList| |op| |ISTMP#1| |ISTMP#2| |clause| |LETTMP#1|
             |env| |e| |tree| |x| |val| |result| |wcl|)
-    (DECLARE (SPECIAL |$whereCacheList|))
+    (DECLARE (SPECIAL |$whereCacheList| |$env| |$e| |$genValue|))
     (RETURN
       (SEQ (COND
              ((NULL (AND (PAIRP |t|)
@@ -3904,7 +3955,7 @@ There are several special modes used in these functions:
               (|compFailure|
                   (APPEND (|bright| (MAKESTRING "  where"))
                           (CONS (MAKESTRING
-                                    "for compiled code is not yet implemented.")
+                                   "for compiled code is not yet implemented.")
                                 NIL))))
              ('T (SPADLET |$whereCacheList| NIL)
               (SPADLET |LETTMP#1|
