diff --git a/changelog b/changelog
index 140dd21..b0aed75 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090930 tpd src/axiom-website/patches.html 20090930.03.tpd.patch
+20090930 tpd src/interp/newfort.lisp cleanup
 20090930 tpd src/axiom-website/patches.html 20090930.02.tpd.patch
 20090930 tpd src/interp/nrunfast.lisp cleanup
 20090930 tpd src/axiom-website/patches.html 20090930.01.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 27be959..6bfaa2e 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2067,5 +2067,7 @@ src/interp/nrunopt.lisp cleanup<br/>
 src/interp/nrungo.lisp cleanup<br/>
 <a href="patches/20090930.02.tpd.patch">20090930.02.tpd.patch</a>
 src/interp/nrunfast.lisp cleanup<br/>
+<a href="patches/20090930.03.tpd.patch">20090930.03.tpd.patch</a>
+src/interp/newfort.lisp cleanup<br/>
  </body>
 </html>
diff --git a/src/interp/newfort.lisp.pamphlet b/src/interp/newfort.lisp.pamphlet
index fab3fb4..edd4c6a 100644
--- a/src/interp/newfort.lisp.pamphlet
+++ b/src/interp/newfort.lisp.pamphlet
@@ -124,6 +124,7 @@
 
 (DEFUN |newFortranTempVar| ()
   (PROG (|newVar|)
+  (declare (special |$defaultFortranType| |$exp2FortTempVarIndex|))
     (RETURN
       (PROGN
         (SPADLET |$exp2FortTempVarIndex|
@@ -463,7 +464,7 @@
 
 (DEFUN |exp2FortOptimize| (|e|)
   (PROG (|$exprStack| |e1| |e2|)
-    (DECLARE (SPECIAL |$exprStack|))
+    (DECLARE (SPECIAL |$exprStack| |$fortranOptimizationLevel|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |$exprStack| NIL)
@@ -535,6 +536,7 @@
 
 (DEFUN |beenHere| (|e| |n|)
   (PROG (|var| |exprStk| |loc| |fun|)
+  (declare (special |$fortCsList|))
     (RETURN
       (PROGN
         (SETELT |n| 0 (PLUS (ELT |n| 0) 1))
@@ -597,15 +599,18 @@
 ;  beenHere(e,n)
 
 (DEFUN |exp2FortOptimizeCS1,pushCsStacks| (|x| |y|)
+  (declare (special |$fortCsFuncStack| |$fortCsExprStack|))
   (SEQ (SPADLET |$fortCsExprStack| (CONS |x| |$fortCsExprStack|))
        (EXIT (SPADLET |$fortCsFuncStack| (CONS |y| |$fortCsFuncStack|)))))
 
 (DEFUN |exp2FortOptimizeCS1,popCsStacks| (|x|)
+  (declare (special |$fortCsFuncStack| |$fortCsExprStack|) (ignore |x|))
   (SEQ (SPADLET |$fortCsFuncStack| (QCDR |$fortCsFuncStack|))
        (EXIT (SPADLET |$fortCsExprStack| (QCDR |$fortCsExprStack|)))))
 
 (DEFUN |exp2FortOptimizeCS1| (|e|)
   (PROG (|op| |ISTMP#1| |arg| |g| |f| |n|)
+  (declare (special |$fortCsHash| |$fortCsFuncStack| |$fortCsExprStack|))
     (RETURN
       (SEQ (COND
              ((OR (ATOM |e|) (AND (ATOM (CAR |e|)) (NULL (CDR |e|))))
@@ -676,6 +681,7 @@
 
 (DEFUN |exp2FortOptimizeArray| (|e|)
   (PROG (|op| |args| |op1| |ISTMP#1| |elts| |var|)
+  (declare (special |$exprStack| |$fortName|))
     (RETURN
       (SEQ (COND
              ((ATOM |e|) |e|)
@@ -810,8 +816,8 @@
 ;  lines
 
 (DEFUN |fortran2Lines1| (|f|)
-  (PROG (|normPref| |contPref| |sff| |ok| |spaceLeft| |ff| |ll| |line|
-            |lines|)
+  (PROG (|normPref| |contPref| |sff| |ok| |spaceLeft| |ff| |ll| |line| |lines|)
+  (declare (special |$fortIndent| |$fortLength|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |normPref| (MAKE-STRING |$fortIndent|))
@@ -871,6 +877,7 @@
 ;  mathPrint u
 
 (DEFUN |fortError1| (|u|)
+  (declare (special |$fortError|))
   (PROGN
     (SPADLET |$fortError| '|t|)
     (|sayErrorly| '|Fortran translation error|
@@ -885,6 +892,7 @@
 
 (DEFUN |fortError| (|u| |v|)
   (PROG (|msg|)
+  (declare (special |$fortError|))
     (RETURN
       (PROGN
         (SPADLET |$fortError| '|t|)
@@ -956,6 +964,7 @@
 
 (DEFUN |dispfortexp| (|x|)
   (PROG (|op| |var|)
+  (declare (special |$IOindex|))
     (RETURN
       (PROGN
         (COND
@@ -1038,6 +1047,7 @@
 ;    TERPRI($fortranOutputStream)
 
 (DEFUN |displayLines1| (|lines|)
+  (declare (special |$fortranOutputStream|))
   (SEQ (DO ((G166579 |lines| (CDR G166579)) (|l| NIL))
            ((OR (ATOM G166579)
                 (PROGN (SETQ |l| (CAR G166579)) NIL))
@@ -1050,13 +1060,16 @@
 ;  if not $fortError then displayLines1 lines
 
 (DEFUN |displayLines| (|lines|)
+  (declare (special |$fortError|))
   (COND ((NULL |$fortError|) (|displayLines1| |lines|)) ('T NIL)))
 
 ;checkLines lines ==
 ;  $fortError => []
 ;  lines
 
-(DEFUN |checkLines| (|lines|) (COND (|$fortError| NIL) ('T |lines|)))
+(DEFUN |checkLines| (|lines|)
+ (declare (special |$fortError|))
+ (COND (|$fortError| NIL) ('T |lines|)))
 
 ;dispfortarrayexp (fortranName,m) ==
 ;  $fortError : fluid := nil
@@ -1159,7 +1172,8 @@
 (DEFUN |exp2FortSpecial| (|op| |args| |nargs|)
   (PROG (|$fortInts2Floats| |arg| |tailPart| |ISTMP#2| |elts| |hidim|
             |sOp| |sArgs| |ISTMP#1| |rows| |var| |nrows| |ncols| |si|)
-    (DECLARE (SPECIAL |$fortInts2Floats|))
+    (DECLARE (SPECIAL |$fortInts2Floats| |$exprStack|
+                      |$fortranArrayStartingIndex|))
     (RETURN
       (SEQ (COND
              ((AND (BOOT-EQUAL |op| 'CONCAT)
@@ -1251,7 +1265,7 @@
                                     ((> (CAR |sArgs|) (SECOND |sArgs|))
                                      (|fortError1|
                                       (MAKESTRING
-                                       "Lower bound of segment exceeds upper bound.")))
+                               "Lower bound of segment exceeds upper bound.")))
                                     ('T
                                      (DO
                                       ((G166671 (SECOND |sArgs|))
@@ -1448,6 +1462,8 @@
 ;  op
 
 (DEFUN |fortranifyIntrinsicFunctionName| (|op| |nargs|)
+  (declare (special |$fortranPrecision| |$intrinsics| 
+                    |$useIntrinsicFunctions|))
   (PROG (|intrinsic|)
     (RETURN
       (COND
@@ -1548,6 +1564,7 @@
 ;  $fortIndent := $fortIndent + 2*i
 
 (DEFUN |indentFortLevel| (|i|)
+  (declare (special |$fortIndent| |$maximumFortranExpressionLength|))
   (PROGN
     (SPADLET |$maximumFortranExpressionLength|
              (SPADDIFFERENCE |$maximumFortranExpressionLength|
@@ -1557,8 +1574,8 @@
 ;changeExprLength(i) ==>
 ;  $maximumFortranExpressionLength := $maximumFortranExpressionLength + i
 
-(DEFMACRO |changeExprLength|
-    (&WHOLE G166771 &REST G166772 &AUX G166767)
+(DEFMACRO |changeExprLength| (&WHOLE G166771 &REST G166772 &AUX G166767)
+  (declare (special |$maximumFortranExpressionLength|))
   (DSETQ (NIL G166767) G166771)
   (SUBLISLIS (LIST G166767) '(G166767)
       '(SPADLET |$maximumFortranExpressionLength|
@@ -1840,6 +1857,7 @@
 ;  ty
 
 (DEFUN |checkType| (|ty|)
+  (declare (special |$fortranPrecision|))
   (PROGN
     (SPADLET |ty| (STRING-UPCASE (STRINGIMAGE |ty|)))
     (COND
@@ -1934,8 +1952,7 @@
 
 (DEFUN |fortFormatTypes| (|typeName| |names|)
   (PROG (|$fortError| |$fortranSegment| |$fortInts2Floats|)
-    (DECLARE (SPECIAL |$fortError| |$fortranSegment|
-                      |$fortInts2Floats|))
+    (DECLARE (SPECIAL |$fortError| |$fortranSegment| |$fortInts2Floats|))
     (RETURN
       (SEQ (COND
              ((NULL |names|) (RETURN))
@@ -1977,6 +1994,7 @@
 
 (DEFUN |fortFormatTypes1| (|typeName| |names|)
   (PROG (|l| |ln| |n|)
+  (declare (special |$maximumFortranExpressionLength|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |l|
@@ -2172,7 +2190,9 @@
 ;  -- Return the name of the current subprogram being generated
 ;  $currentSubprogram or "MAIN"
 
-(DEFUN |currentSP| () (OR |$currentSubprogram| 'MAIN))
+(DEFUN |currentSP| () 
+ (declare (special |$currentSubprogram|))
+ (OR |$currentSubprogram| 'MAIN))
 
 ;updateSymbolTable(name,type) ==
 ;    fun := ['$elt,'SYMS,'declare_!]
@@ -2223,12 +2243,16 @@
 ;initialiseIntrinsicList() ==
 ;  $intrinsics := []
 
-(DEFUN |initialiseIntrinsicList| NIL (SPADLET |$intrinsics| NIL)) 
+(DEFUN |initialiseIntrinsicList| ()
+ (declare (special |$intrinsics|))
+ (SPADLET |$intrinsics| NIL)) 
 
 ;getIntrinsicList() ==
 ;  $intrinsics
 
-(DEFUN |getIntrinsicList| NIL |$intrinsics|) 
+(DEFUN |getIntrinsicList| NIL
+ (declare (special |$intrinsics|))
+  |$intrinsics|) 
 
 ;-------------------- fortPre.boot ------------------
 ;
@@ -2325,6 +2349,7 @@
   (PROG (|imags| |args| |rand| |exponent| |op| |specialOps|
                  |binaryExpr| |arg1| |arg2| |mop| |ISTMP#1| |m1|
                  |ISTMP#2| |m2|)
+  (declare (special |$fortInts2Floats|))
     (RETURN
       (SEQ (COND
              ((NULL |e|) NIL)
@@ -2533,6 +2558,7 @@
 ;  STRCONC(STRINGIMAGE(e),".")
 
 (DEFUN |fix2FortranFloat| (|e|)
+  (declare (special |$fortranPrecision|))
   (COND
     ((BOOT-EQUAL |$fortranPrecision| '|double|)
      (STRCONC (STRINGIMAGE |e|) (INTERN ".0D0" "BOOT")))
@@ -2561,6 +2587,7 @@
 
 (DEFUN |checkPrecision| (|e|)
   (PROG (|period| |iPart| |ePos| |expt| |rPart|)
+  (declare (special |$fortranPrecision|))
     (RETURN
       (COND
         ((AND (STRINGP |e|) (EQL (CHAR-CODE (CHAR |e| 0)) 34)) |e|)
@@ -2685,6 +2712,7 @@
 ;tempLen () == 1 + LENGTH STRINGIMAGE $exp2FortTempVarIndex
 
 (DEFUN |tempLen| ()
+  (declare (special |$exp2FortTempVarIndex|))
   (PLUS 1 (LENGTH (STRINGIMAGE |$exp2FortTempVarIndex|))))
 
 ;segment l ==
@@ -2705,6 +2733,7 @@
 
 (DEFUN |segment| (|l|)
   (PROG (|var| |exprs| |s|)
+  (declare (special |$maximumFortranExpressionLength| |$fortranSegment|))
     (RETURN
       (SEQ (COND
              ((NULL |$fortranSegment|) |l|)
@@ -2851,6 +2880,7 @@
 
 (DEFUN |segment2| (|e| |topSize|)
   (PROG (|maxSize| |subE| |subSize| |exprs| |newE| |newVar|)
+  (declare (special |$maximumFortranExpressionLength|))
     (RETURN
       (SEQ (PROGN
              (SPADLET |maxSize|
