diff --git a/sources/FILEPKG b/sources/FILEPKG
index c71bd967..ca8c5132 100644
--- a/sources/FILEPKG
+++ b/sources/FILEPKG
@@ -1,14 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "27-Sep-2025 19:56:28" 
-{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FILEPKG.;53 274937 
+(FILECREATED "23-Feb-2026 00:54:21" {WMEDLEY}<sources>FILEPKG.;59 275343 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS COMPILE-FILE?)
+      :CHANGES-TO (FNS IMPORTFILESCAN FILEGETDEF.FNS GETDEFCURRENT)
 
-      :PREVIOUS-DATE "24-Apr-2025 11:18:44" 
-{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FILEPKG.;52)
+      :PREVIOUS-DATE "22-Feb-2026 18:02:21" {WMEDLEY}<sources>FILEPKG.;56)
 
 
 (PRETTYCOMPRINT FILEPKGCOMS)
@@ -2910,18 +2908,19 @@ compiling " T)
                                                        NIL) finally (RETURN 'NOBIND])
 
 (FILEGETDEF.FNS
-  [LAMBDA (NAME TYPE SOURCE OPTIONS)                         (* bvm%: "29-Aug-86 22:30")
+  [LAMBDA (NAME TYPE SOURCE OPTIONS)                         (* ; "Edited 23-Feb-2026 00:37 by rmk")
+                                                             (* bvm%: "29-Aug-86 22:30")
     (LET (MAP ENV)
          (COND
             [(AND (EQMEMB 'FAST OPTIONS)
                   (PROGN (CL:MULTIPLE-VALUE-SETQ (ENV MAP)
                                 (GET-ENVIRONMENT-AND-FILEMAP SOURCE))
                          MAP))
+             (CL:UNLESS (OPENP SOURCE)
+                 [RESETSAVE NIL (LIST 'CLOSEF? (SETQ SOURCE (OPENSTREAM SOURCE 'INPUT 'OLD])
+             (\EXTERNALFORMAT SOURCE ENV)
              (for PAIR MAPLOC in (CDR MAP) when [SETQ MAPLOC (CADR (ASSOC NAME (CDDR PAIR]
-                do [OR (OPENP SOURCE)
-                       (RESETSAVE NIL (LIST 'CLOSEF? (SETQ SOURCE (OPENSTREAM SOURCE 'INPUT
-                                                                         'OLD]
-                   (SETFILEPTR SOURCE MAPLOC)
+                do (SETFILEPTR SOURCE MAPLOC)
                    (RETURN (WITH-READER-ENVIRONMENT ENV
                                [COND
                                   ((EQMEMB 'ARGLIST OPTIONS)
@@ -3044,14 +3043,14 @@ compiling " T)
 
 
 (ADDTOVAR USERMACROS
-          (M NIL (MAKE FILE FILE))
           (M (X . Y)
              (E (MARKASCHANGED (COND ((LISTP 'X)
                                       (CAR 'X))
                                      (T 'X))
                        'USERMACROS)
                 T)
-             (ORIGINAL (M X . Y))))
+             (ORIGINAL (M X . Y)))
+          (M NIL (MAKE FILE FILE)))
 
 (ADDTOVAR EDITMACROS
           (M (X . Y)
@@ -3335,7 +3334,8 @@ compiling " T)
                             (RETFROM 'GETDEFCOM])
 
 (GETDEFCURRENT
-  [LAMBDA (NAME TYPE OPTIONS)                                (* ; "Edited  2-May-87 19:00 by Pavel")
+  [LAMBDA (NAME TYPE OPTIONS)                                (* ; "Edited 23-Feb-2026 00:27 by rmk")
+                                                             (* ; "Edited  2-May-87 19:00 by Pavel")
                                                              (* ; 
                                                              "Gets the current definition--source=0")
     (LET
@@ -3422,6 +3422,7 @@ compiling " T)
                              (RESETSAVE PRETTYFLG)
                              (RESETSAVE FONTCHANGEFLG)
                              [RESETSAVE (OUTPUT (SETQ FILE (OPENSTREAM '{NODIRCORE} 'BOTH]
+                             (\EXTERNALFORMAT FILE *OLD-INTERLISP-READ-ENVIRONMENT*)
                              (PRETTYDEFCOMS COMS)
                              (SETFILEPTR FILE 0)
                              [SETQ DEF
@@ -4689,11 +4690,14 @@ compiling " T)
                     (AND RETURNFLG (LIST FORM])
 
 (IMPORTFILESCAN
-  [LAMBDA (FILE RETURNFLG)                                   (* bvm%: "24-Oct-86 19:31")
-    (WITH-READER-ENVIRONMENT (GET-ENVIRONMENT-AND-FILEMAP FILE)
-        (while (FFILEPOS BEGINEXPORTDEFSTRING FILE NIL NIL NIL T) bind DEF
-           join (until (EQUAL (SETQ DEF (READ FILE))
-                              ENDEXPORTDEFFORM) join (IMPORTEVAL DEF RETURNFLG))))])
+  [LAMBDA (FILE RETURNFLG)                                   (* ; "Edited 22-Feb-2026 18:20 by rmk")
+                                                             (* bvm%: "24-Oct-86 19:31")
+    (LET ((ENV (GET-ENVIRONMENT-AND-FILEMAP FILE)))
+         (WITH-READER-ENVIRONMENT ENV
+             (\EXTERNALFORMAT FILE ENV)
+             (while (FFILEPOS BEGINEXPORTDEFSTRING FILE NIL NIL NIL T) bind DEF
+                join (until (EQUAL (SETQ DEF (READ FILE))
+                                   ENDEXPORTDEFFORM) join (IMPORTEVAL DEF RETURNFLG))))])
 
 (CHECKIMPORTS
   [LAMBDA (FILES NOASKFLG)                                   (* rmk%: "19-FEB-83 16:31")
@@ -4868,46 +4872,46 @@ compiling " T)
 (ADDTOVAR LAMA FILEPKGTYPE FILEPKGCOM FILEPKGCHANGES)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (18974 20647 (SEARCHPRETTYTYPELST 18984 . 19953) (PRETTYDEFMACROS 19955 . 20391) (
-FILEPKGCOMPROPS 20393 . 20645)) (21460 55859 (CLEANUP 21470 . 22860) (COMPILEFILES 22862 . 23138) (
-COMPILEFILES0 23140 . 23953) (CONTINUEDIT 23955 . 25332) (MAKEFILE 25334 . 37060) (FILECHANGES 37062
- . 39826) (FILEPKG.MERGECHANGES 39828 . 40463) (FILEPKG.CHANGEDFNS 40465 . 40777) (MAKEFILE1 40779 . 
-44991) (COMPILE-FILE? 44993 . 46687) (MAKEFILES 46689 . 48217) (ADDFILE 48219 . 50762) (ADDFILE0 50764
- . 54888) (LISTFILES 54890 . 55857)) (56531 90330 (FILEPKGCHANGES 56541 . 57720) (GETFILEPKGTYPE 57722
- . 60672) (MARKASCHANGED 60674 . 62305) (FILECOMS 62307 . 62691) (WHEREIS 62693 . 64435) (
-SMASHFILECOMS 64437 . 64665) (FILEFNSLST 64667 . 64833) (FILECOMSLST 64835 . 65321) (UPDATEFILES 65323
- . 69821) (INFILECOMS? 69823 . 71666) (INFILECOMTAIL 71668 . 72786) (INFILECOMS 72788 . 72949) (
-INFILECOM 72951 . 82969) (INFILECOMSVALS 82971 . 83278) (INFILECOMSVAL 83280 . 84288) (INFILECOMSPROP 
-84290 . 85083) (IFCPROPS 85085 . 86165) (IFCEXPRTYPE 86167 . 86783) (IFCPROPSCAN 86785 . 87746) (
-IFCDECLARE 87748 . 89007) (INFILEPAIRS 89009 . 89308) (INFILECOMSMACRO 89310 . 90328)) (90365 121051 (
-FILES? 90375 . 92486) (FILES?1 92488 . 93190) (FILES?PRINTLST 93192 . 93974) (ADDTOFILES? 93976 . 
-104519) (ADDTOFILE 104521 . 105437) (WHATIS 105439 . 107415) (ADDTOCOMS 107417 . 108955) (ADDTOCOM 
-108957 . 115444) (ADDTOCOM1 115446 . 116617) (ADDNEWCOM 116619 . 117669) (MAKENEWCOM 117671 . 119518) 
-(DEFAULTMAKENEWCOM 119520 . 121049)) (121121 123938 (MERGEINSERT 121131 . 123474) (MERGEINSERT1 123476
- . 123936)) (124092 125453 (ADDTOFILEKEYLST 124102 . 125451)) (125570 136371 (DELFROMFILES 125580 . 
-126410) (DELFROMCOMS 126412 . 128091) (DELFROMCOM 128093 . 133858) (DELFROMCOM1 133860 . 134659) (
-REMOVEITEM 134661 . 135537) (MOVETOFILE 135539 . 136369)) (136585 138956 (SAVEPUT 136595 . 138954)) (
-139081 147324 (UNMARKASCHANGED 139091 . 140575) (PREEDITFN 140577 . 143058) (POSTEDITPROPS 143060 . 
-145354) (POSTEDITALISTS 145356 . 147322)) (147469 166939 (ALISTS.GETDEF 147479 . 147858) (
-ALISTS.WHENCHANGED 147860 . 148506) (CLEARCLISPARRAY 148508 . 149686) (EXPRESSIONS.WHENCHANGED 149688
- . 150066) (MAKEALISTCOMS 150068 . 151083) (MAKEFILESCOMS 151085 . 152415) (MAKELISPXMACROSCOMS 152417
- . 154435) (MAKEPROPSCOMS 154437 . 155063) (MAKEUSERMACROSCOMS 155065 . 156882) (PROPS.WHENCHANGED 
-156884 . 157505) (FILEGETDEF.LISPXMACROS 157507 . 158806) (FILEGETDEF.ALISTS 158808 . 159399) (
-FILEGETDEF.RECORDS 159401 . 160328) (FILEGETDEF.PROPS 160330 . 161125) (FILEGETDEF.MACROS 161127 . 
-162009) (FILEGETDEF.VARS 162011 . 162614) (FILEGETDEF.FNS 162616 . 163856) (FILEPKGCOMS.PUTDEF 163858
- . 165800) (FILES.PUTDEF 165802 . 166670) (VARS.PUTDEF 166672 . 166815) (FILES.WHENCHANGED 166817 . 
-166937)) (168961 176192 (RENAME 168971 . 170416) (CHANGECALLERS 170418 . 176190)) (176193 224102 (
-SHOWDEF 176203 . 177400) (COPYDEF 177402 . 180150) (GETDEF 180152 . 182695) (GETDEFCOM 182697 . 183663
-) (GETDEFCOM0 183665 . 184858) (GETDEFCURRENT 184860 . 191172) (GETDEFERR 191174 . 192444) (
-GETDEFFROMFILE 192446 . 196675) (GETDEFSAVED 196677 . 197765) (PUTDEF 197767 . 198474) (EDITDEF 198476
- . 199459) (DEFAULT.EDITDEF 199461 . 202299) (EDITDEF.FILES 202301 . 202506) (LOADDEF 202508 . 202684)
- (DWIMDEF 202686 . 203540) (DELDEF 203542 . 206436) (DELFROMLIST 206438 . 206942) (HASDEF 206944 . 
-213181) (GETFILEDEF 213183 . 213695) (SAVEDEF 213697 . 215385) (UNSAVEDEF 215387 . 216283) (
-COMPAREDEFS 216285 . 220091) (COMPARE 220093 . 220797) (TYPESOF 220799 . 224100)) (224252 232500 (
-FILEPKGCOM 224262 . 229038) (FILEPKGTYPE 229040 . 232498)) (244533 262222 (FINDCALLERS 244543 . 245173
-) (EDITCALLERS 245175 . 256106) (EDITFROMFILE 256108 . 261537) (FINDATS 261539 . 261811) (LOOKIN 
-261813 . 262220)) (262223 263894 (SEPRCASE 262233 . 263892)) (264411 269414 (IMPORTFILE 264421 . 
-265391) (IMPORTEVAL 265393 . 266279) (IMPORTFILESCAN 266281 . 266694) (CHECKIMPORTS 266696 . 267952) (
-GATHEREXPORTS 267954 . 268822) (\DUMPEXPORTS 268824 . 269412)) (269752 271822 (CLEARFILEPKG 269762 . 
-271820)))))
+  (FILEMAP (NIL (18922 20595 (SEARCHPRETTYTYPELST 18932 . 19901) (PRETTYDEFMACROS 19903 . 20339) (
+FILEPKGCOMPROPS 20341 . 20593)) (21408 55807 (CLEANUP 21418 . 22808) (COMPILEFILES 22810 . 23086) (
+COMPILEFILES0 23088 . 23901) (CONTINUEDIT 23903 . 25280) (MAKEFILE 25282 . 37008) (FILECHANGES 37010
+ . 39774) (FILEPKG.MERGECHANGES 39776 . 40411) (FILEPKG.CHANGEDFNS 40413 . 40725) (MAKEFILE1 40727 . 
+44939) (COMPILE-FILE? 44941 . 46635) (MAKEFILES 46637 . 48165) (ADDFILE 48167 . 50710) (ADDFILE0 50712
+ . 54836) (LISTFILES 54838 . 55805)) (56479 90278 (FILEPKGCHANGES 56489 . 57668) (GETFILEPKGTYPE 57670
+ . 60620) (MARKASCHANGED 60622 . 62253) (FILECOMS 62255 . 62639) (WHEREIS 62641 . 64383) (
+SMASHFILECOMS 64385 . 64613) (FILEFNSLST 64615 . 64781) (FILECOMSLST 64783 . 65269) (UPDATEFILES 65271
+ . 69769) (INFILECOMS? 69771 . 71614) (INFILECOMTAIL 71616 . 72734) (INFILECOMS 72736 . 72897) (
+INFILECOM 72899 . 82917) (INFILECOMSVALS 82919 . 83226) (INFILECOMSVAL 83228 . 84236) (INFILECOMSPROP 
+84238 . 85031) (IFCPROPS 85033 . 86113) (IFCEXPRTYPE 86115 . 86731) (IFCPROPSCAN 86733 . 87694) (
+IFCDECLARE 87696 . 88955) (INFILEPAIRS 88957 . 89256) (INFILECOMSMACRO 89258 . 90276)) (90313 120999 (
+FILES? 90323 . 92434) (FILES?1 92436 . 93138) (FILES?PRINTLST 93140 . 93922) (ADDTOFILES? 93924 . 
+104467) (ADDTOFILE 104469 . 105385) (WHATIS 105387 . 107363) (ADDTOCOMS 107365 . 108903) (ADDTOCOM 
+108905 . 115392) (ADDTOCOM1 115394 . 116565) (ADDNEWCOM 116567 . 117617) (MAKENEWCOM 117619 . 119466) 
+(DEFAULTMAKENEWCOM 119468 . 120997)) (121069 123886 (MERGEINSERT 121079 . 123422) (MERGEINSERT1 123424
+ . 123884)) (124040 125401 (ADDTOFILEKEYLST 124050 . 125399)) (125518 136319 (DELFROMFILES 125528 . 
+126358) (DELFROMCOMS 126360 . 128039) (DELFROMCOM 128041 . 133806) (DELFROMCOM1 133808 . 134607) (
+REMOVEITEM 134609 . 135485) (MOVETOFILE 135487 . 136317)) (136533 138904 (SAVEPUT 136543 . 138902)) (
+139029 147272 (UNMARKASCHANGED 139039 . 140523) (PREEDITFN 140525 . 143006) (POSTEDITPROPS 143008 . 
+145302) (POSTEDITALISTS 145304 . 147270)) (147417 166961 (ALISTS.GETDEF 147427 . 147806) (
+ALISTS.WHENCHANGED 147808 . 148454) (CLEARCLISPARRAY 148456 . 149634) (EXPRESSIONS.WHENCHANGED 149636
+ . 150014) (MAKEALISTCOMS 150016 . 151031) (MAKEFILESCOMS 151033 . 152363) (MAKELISPXMACROSCOMS 152365
+ . 154383) (MAKEPROPSCOMS 154385 . 155011) (MAKEUSERMACROSCOMS 155013 . 156830) (PROPS.WHENCHANGED 
+156832 . 157453) (FILEGETDEF.LISPXMACROS 157455 . 158754) (FILEGETDEF.ALISTS 158756 . 159347) (
+FILEGETDEF.RECORDS 159349 . 160276) (FILEGETDEF.PROPS 160278 . 161073) (FILEGETDEF.MACROS 161075 . 
+161957) (FILEGETDEF.VARS 161959 . 162562) (FILEGETDEF.FNS 162564 . 163878) (FILEPKGCOMS.PUTDEF 163880
+ . 165822) (FILES.PUTDEF 165824 . 166692) (VARS.PUTDEF 166694 . 166837) (FILES.WHENCHANGED 166839 . 
+166959)) (168983 176214 (RENAME 168993 . 170438) (CHANGECALLERS 170440 . 176212)) (176215 224318 (
+SHOWDEF 176225 . 177422) (COPYDEF 177424 . 180172) (GETDEF 180174 . 182717) (GETDEFCOM 182719 . 183685
+) (GETDEFCOM0 183687 . 184880) (GETDEFCURRENT 184882 . 191388) (GETDEFERR 191390 . 192660) (
+GETDEFFROMFILE 192662 . 196891) (GETDEFSAVED 196893 . 197981) (PUTDEF 197983 . 198690) (EDITDEF 198692
+ . 199675) (DEFAULT.EDITDEF 199677 . 202515) (EDITDEF.FILES 202517 . 202722) (LOADDEF 202724 . 202900)
+ (DWIMDEF 202902 . 203756) (DELDEF 203758 . 206652) (DELFROMLIST 206654 . 207158) (HASDEF 207160 . 
+213397) (GETFILEDEF 213399 . 213911) (SAVEDEF 213913 . 215601) (UNSAVEDEF 215603 . 216499) (
+COMPAREDEFS 216501 . 220307) (COMPARE 220309 . 221013) (TYPESOF 221015 . 224316)) (224468 232716 (
+FILEPKGCOM 224478 . 229254) (FILEPKGTYPE 229256 . 232714)) (244749 262438 (FINDCALLERS 244759 . 245389
+) (EDITCALLERS 245391 . 256322) (EDITFROMFILE 256324 . 261753) (FINDATS 261755 . 262027) (LOOKIN 
+262029 . 262436)) (262439 264110 (SEPRCASE 262449 . 264108)) (264627 269820 (IMPORTFILE 264637 . 
+265607) (IMPORTEVAL 265609 . 266495) (IMPORTFILESCAN 266497 . 267100) (CHECKIMPORTS 267102 . 268358) (
+GATHEREXPORTS 268360 . 269228) (\DUMPEXPORTS 269230 . 269818)) (270158 272228 (CLEARFILEPKG 270168 . 
+272226)))))
 STOP
diff --git a/sources/FILEPKG.LCOM b/sources/FILEPKG.LCOM
index 85ae095b..31aae9be 100644
Binary files a/sources/FILEPKG.LCOM and b/sources/FILEPKG.LCOM differ
diff --git a/sources/LOADFNS b/sources/LOADFNS
index 3bff0dfb..b3bf4811 100644
--- a/sources/LOADFNS
+++ b/sources/LOADFNS
@@ -1,15 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED " 2-May-2022 11:38:55" {DSK}<home>larry>medley>sources>LOADFNS.;2 47218  
+(FILECREATED "23-Feb-2026 00:49:17" {WMEDLEY}<sources>LOADFNS.;7 47671  
 
-      :CHANGES-TO (FNS SCANFILEHELP)
+      :EDIT-BY rmk
 
-      :PREVIOUS-DATE "16-Apr-2018 17:38:16" {DSK}<home>larry>medley>sources>LOADFNS.;1)
+      :CHANGES-TO (FNS LOADFNS)
 
+      :PREVIOUS-DATE "22-Feb-2026 18:01:39" {WMEDLEY}<sources>LOADFNS.;6)
 
-(* ; "
-Copyright (c) 1983-1984, 1986-1987, 1989-1990, 2018, 2022 by Venue & Xerox Corporation.
-")
 
 (PRETTYCOMPRINT LOADFNSCOMS)
 
@@ -110,107 +108,107 @@ Copyright (c) 1983-1984, 1986-1987, 1989-1990, 2018, 2022 by Venue & Xerox Corpo
     (LOADFNS NIL FILE NIL 'FILEMAP])
 
 (LOADFNS
-  [LAMBDA (FNS FILE LDFLG VARS)                              (* bvm%: "17-Nov-86 23:28")
+  [LAMBDA (FNS FILE LDFLG VARS)                              (* ; "Edited 23-Feb-2026 00:49 by rmk")
+                                                             (* bvm%: "17-Nov-86 23:28")
 
-(* ;;; "All of LOADVARS, LOADCOMP, LOADFILEMAP, LOADFROM come thru here.")
+(* ;;; "All of LOADVARS, LOADCOMP, LOADFILEMAP, LOADFROM come thru here.")
 
-    (DECLARE (SPECVARS FILE LDFLG VARS))                     (* ; "Used free by RETRYSCAN")
+    (DECLARE (SPECVARS FILE LDFLG VARS))                     (* ; "Used free by RETRYSCAN")
     (RESETLST
-     (PROG ((*PACKAGE* *INTERLISP-PACKAGE*)
-            (DFNFLG DFNFLG)
-            (BUILDMAPFLG BUILDMAPFLG)
-            (FILEPKGFLG FILEPKGFLG)
-            (ADDSPELLFLG ADDSPELLFLG)
-            (LISPXHIST LISPXHIST)
-            (FILECREATEDLST)
-            (PRLST (AND FILEPKGFLG (FILEPKGCHANGES)))
-            INSTREAM FNLST VARLST DONELST ROOTNAME FILEMAP TEM FILEMAPEND FILECREATEDLOC FILENV 
-            RESETSAVER MAPUPDATED)
-           (DECLARE (SPECVARS *PACKAGE* DFNFLG BUILDMAPFLG FILEPKGFLG ADDSPELLFLG LISPXHIST FNLST 
-                           VARLST DONELST FILECREATEDLST FILECREATEDLOC))
-                                                             (* ; 
-                       "FILECREATEDLST is set by SCANEXP when it encounters a FILECREATED expression")
-       TOP (COND
-              ((OR (EQ LDFLG 'EXPRESSIONS)
-                   (EQ LDFLG 'GETDEF)
-                   (MEMB LDFLG LOADOPTIONS))
-               (SETQ DFNFLG LDFLG))
-              ((AND DWIMFLG (SETQ TEM (FIXSPELL LDFLG NIL LOADOPTIONS T)))
-               (SETQ LDFLG TEM)
-               (SETQ DFNFLG LDFLG))
-              (T (SETQ LDFLG (ERROR "unrecognized load option" LDFLG))
-                 (GO TOP)))
-           (COND
-              ((EQ LDFLG 'SYSLOAD)
-               (SETQ DFNFLG T)
-               (SETQ ADDSPELLFLG NIL)
-               (SETQ BUILDMAPFLG NIL)
-               (SETQ FILEPKGFLG NIL)
-               (SETQ LISPXHIST NIL)))
-           [AND LISPXHIST (COND
-                             ((SETQ TEM (FMEMB 'SIDE LISPXHIST))
-                              (FRPLACA (CADR TEM)
-                                     -1))
-                             (T (LISPXPUT 'SIDE (LIST -1)
-                                       NIL LISPXHIST]        (* ; 
-                    "So that UNDOSAVE will keep saving regardless of how many undosaves are involved")
-           (SETQ FNLST (LOADFNS-MAKELIST FNS T))             (* ; "Get list of functions")
-           [COND
-              ((NULL FILE)                                   (* ; 
-                                                  "Infer what file caller meant (this is a feature!)")
-               (SETQ FILE (LOADFNS-FINDFILE (CAR FNLST]
-       RETRY
-           [RESETSAVE NIL (SETQ RESETSAVER (LIST 'CLOSEF? (SETQ INSTREAM (OPENSTREAM FILE
-                                                                                'INPUT]
-                                                             (* ; 
-                                  "CLOSEF?  not CLOSEF because UPDATEFILEMAP might close file for us")
-           (RESETSAVE (INPUT INSTREAM))
-           (SETQ FILE (FULLNAME INSTREAM))                   (* ; 
-  "Gets full file name.  Also note that there may have been some error correction done in OPENSTREAM")
-           (COND
-              ((NOT (RANDACCESSP INSTREAM))
-               (SETQ FILE (ERROR FILE "not a random access file"))
-               (GO RETRY)))
-           (SETFILEPTR INSTREAM 0)
-           (SETQ ROOTNAME (ROOTFILENAME FILE))
-           (CL:MULTIPLE-VALUE-SETQ (FILENV FILEMAP FILECREATEDLOC FILECREATEDLST)
-                  (GET-ENVIRONMENT-AND-FILEMAP INSTREAM))
-           (SETQ VARLST (SELECTQ VARS
-                            (NIL NIL)
-                            (VARS                            (* ; 
-                                                         "Means load, i.e., evaluate, ALL rpaq/rpaqq")
-                                  'VARS)
-                            (FNS/VARS (LIST (FILECOMS ROOTNAME 'COMS)
-                                            (FILECOMS ROOTNAME 'BLOCKS)))
-                            (LOADCOMP                        (* ; 
-                                     "evaluate the EVAL@COMPILE expresions, notice the fns and vars.")
-                                      (SETQ FNLST T)
-                                      VARS)
-                            (FILEMAP                         (* ; 
-                                          "Return the filemap, or build one if not already available")
-                                     (if (AND FILEMAP (NULL (CAR FILEMAP)))
-                                         then (RETURN FILEMAP)
-                                       elseif (NULL BUILDMAPFLG)
-                                         then (RETURN NIL))
-                                     'FILEMAP)
-                            (LOADFROM 
-          
-          (* ;; "evaluate all non-defineq expressions, but just return file name as value, i.e.  dont bother adding to donelst")
+        [PROG ((*PACKAGE* *INTERLISP-PACKAGE*)
+               (DFNFLG DFNFLG)
+               (BUILDMAPFLG BUILDMAPFLG)
+               (FILEPKGFLG FILEPKGFLG)
+               (ADDSPELLFLG ADDSPELLFLG)
+               (LISPXHIST LISPXHIST)
+               (FILECREATEDLST)
+               (PRLST (AND FILEPKGFLG (FILEPKGCHANGES)))
+               INSTREAM FNLST VARLST DONELST ROOTNAME FILEMAP TEM FILEMAPEND FILECREATEDLOC FILENV 
+               RESETSAVER MAPUPDATED)
+              (DECLARE (SPECVARS *PACKAGE* DFNFLG BUILDMAPFLG FILEPKGFLG ADDSPELLFLG LISPXHIST FNLST
+                              VARLST DONELST FILECREATEDLST FILECREATEDLOC))
+                                                             (* ; 
+                       "FILECREATEDLST is set by SCANEXP when it encounters a FILECREATED expression")
+          TOP (COND
+                 ((OR (EQ LDFLG 'EXPRESSIONS)
+                      (EQ LDFLG 'GETDEF)
+                      (MEMB LDFLG LOADOPTIONS))
+                  (SETQ DFNFLG LDFLG))
+                 ((AND DWIMFLG (SETQ TEM (FIXSPELL LDFLG NIL LOADOPTIONS T)))
+                  (SETQ LDFLG TEM)
+                  (SETQ DFNFLG LDFLG))
+                 (T (SETQ LDFLG (ERROR "unrecognized load option" LDFLG))
+                    (GO TOP)))
+              (COND
+                 ((EQ LDFLG 'SYSLOAD)
+                  (SETQ DFNFLG T)
+                  (SETQ ADDSPELLFLG NIL)
+                  (SETQ BUILDMAPFLG NIL)
+                  (SETQ FILEPKGFLG NIL)
+                  (SETQ LISPXHIST NIL)))
+              [AND LISPXHIST (COND
+                                ((SETQ TEM (FMEMB 'SIDE LISPXHIST))
+                                 (FRPLACA (CADR TEM)
+                                        -1))
+                                (T (LISPXPUT 'SIDE (LIST -1)
+                                          NIL LISPXHIST]     (* ; 
+                    "So that UNDOSAVE will keep saving regardless of how many undosaves are involved")
+              (SETQ FNLST (LOADFNS-MAKELIST FNS T))          (* ; "Get list of functions")
+              [COND
+                 ((NULL FILE)                                (* ; 
+                                                  "Infer what file caller meant (this is a feature!)")
+                  (SETQ FILE (LOADFNS-FINDFILE (CAR FNLST]
+          RETRY
+              [RESETSAVE NIL (SETQ RESETSAVER (LIST 'CLOSEF? (SETQ INSTREAM (OPENSTREAM FILE
+                                                                                   'INPUT]
+                                                             (* ; 
+                                  "CLOSEF?  not CLOSEF because UPDATEFILEMAP might close file for us")
+              (RESETSAVE (INPUT INSTREAM))
+              (SETQ FILE (FULLNAME INSTREAM))                (* ; 
+  "Gets full file name.  Also note that there may have been some error correction done in OPENSTREAM")
+              (COND
+                 ((NOT (RANDACCESSP INSTREAM))
+                  (SETQ FILE (ERROR FILE "not a random access file"))
+                  (GO RETRY)))
+              (SETFILEPTR INSTREAM 0)
+              (SETQ ROOTNAME (ROOTFILENAME FILE))
+              (CL:MULTIPLE-VALUE-SETQ (FILENV FILEMAP FILECREATEDLOC FILECREATEDLST)
+                     (GET-ENVIRONMENT-AND-FILEMAP INSTREAM))
+              (\EXTERNALFORMAT INSTREAM FILENV)
+              (SETQ VARLST (SELECTQ VARS
+                               (NIL NIL)
+                               (VARS                         (* ; 
+                                                         "Means load, i.e., evaluate, ALL rpaq/rpaqq")
+                                     'VARS)
+                               (FNS/VARS (LIST (FILECOMS ROOTNAME 'COMS)
+                                               (FILECOMS ROOTNAME 'BLOCKS)))
+                               (LOADCOMP                     (* ; 
+                                     "evaluate the EVAL@COMPILE expresions, notice the fns and vars.")
+                                         (SETQ FNLST T)
+                                         VARS)
+                               (FILEMAP                      (* ; 
+                                          "Return the filemap, or build one if not already available")
+                                        (if (AND FILEMAP (NULL (CAR FILEMAP)))
+                                            then (RETURN FILEMAP)
+                                          elseif (NULL BUILDMAPFLG)
+                                            then (RETURN NIL))
+                                        'FILEMAP)
+                               (LOADFROM 
+                                         (* ;; "evaluate all non-defineq expressions, but just return file name as value, i.e.  dont bother adding to donelst")
 
-                                      'LOADFROM)
-                            (DONTCOPY                        (* ; 
-                                                       "means load all DECLARE: DONTCOPY expressions")
-                                      VARS)
-                            (LOADFNS-MAKELIST VARS)))
-           (SETQ FILEMAPEND (if FILEMAP
-                                then (CAR FILEMAP)
-                              else T))                       (* ; 
-                                                      "Remember how far the filemap scan got already")
-           [WITH-READER-ENVIRONMENT
-            FILENV
-            (SETQ FILEMAP (LOADFNSCAN FILEMAP))
+                                         'LOADFROM)
+                               (DONTCOPY                     (* ; 
+                                                       "means load all DECLARE: DONTCOPY expressions")
+                                         VARS)
+                               (LOADFNS-MAKELIST VARS)))
+              (SETQ FILEMAPEND (if FILEMAP
+                                   then (CAR FILEMAP)
+                                 else T))                    (* ; 
+                                                      "Remember how far the filemap scan got already")
+              (WITH-READER-ENVIRONMENT FILENV
+                  (SETQ FILEMAP (LOADFNSCAN FILEMAP))
 
-(* ;;; "SCANFILE0 returns a 'map' for the file.  The form of the map is (ADR ADRLST ADRLST ...) where ADR is last address scanned to in file, or NIL if entire file was scanned, or (ADR) where the scan stopped after a function in the middle of a DEFINEQ.  Each ADRLST is either of the form (ADR1 ADR2 . FN) or (ADR1 ADR2 (FN ADRX . ADRY) (FN ADRX . ADRY) ...).
+(* ;;; "SCANFILE0 returns a 'map' for the file.  The form of the map is (ADR ADRLST ADRLST ...) where ADR is last address scanned to in file, or NIL if entire file was scanned, or (ADR) where the scan stopped after a function in the middle of a DEFINEQ.  Each ADRLST is either of the form (ADR1 ADR2 . FN) or (ADR1 ADR2 (FN ADRX . ADRY) (FN ADRX . ADRY) ...).
 
 The first case corresponds to a compiled function, the second to a DEFINEQ.  In the first case, ADR1 is the address of the first character AFTER the function name in the file (for use by LAPRD) and ADR2 the address of the first character after the de definition, i.e., after LAPRD or LCSKIP has finished.
 
@@ -218,89 +216,89 @@ In the second case, ADR1 is the address of the lef paren before the DEFINEQ, and
 
 A map of non-functions is not kept because (a) it would not be of use to MAKEFILE since it always recomputes VARS, and (B) most requests for other than functions require scanning the entire file anyway, e.g. to find all RPAQQ's, and (C) the expressions are usually small compared to DEFINEQ's.")
 
-            [if FILEMAP
-                then
-                (if (NEQ FILEMAPEND (CAR FILEMAP))
-                    then                                     (* ; "something was added")
-                         (PUTFILEMAP FILE FILEMAP FILECREATEDLST)
-                         (if (AND UPDATEMAPFLG (UPDATEFILEMAP INSTREAM FILEMAP))
-                             then (SETQ MAPUPDATED T)))
-                (if (AND DWIMFLG (NOT NOSPELLFLG)
-                         (LISTP FNLST))
-                    then                                     (* ; 
-                                                       "There are still FNS left that we didn't find")
-                    (if (SETQ TEM
-                         (for X on FNLST
-                            bind [KNOWNFNS _ (for TRIPLE in (CDR FILEMAP)
-                                                join         (* ; 
-                                   "makes a list of functions found for use for spelling correction.")
-                                                     (if (LISTP (SETQ TEM (CDDR TRIPLE)))
-                                                         then 
-                                                             (* ; 
-                            "This is for normal source files, where TRIPLE = (start end . fnEntries)")
-                                                              (MAPCAR TEM (FUNCTION CAR))
-                                                       elseif TEM
-                                                         then 
-                                                             (* ; 
-                                                      "For compiled files, TRIPLE = (start end . fn)")
-                                                              (LIST TEM]
-                            when (AND (NOT (FMEMB (CAR X)
-                                                  KNOWNFNS))
-                                      (FIXSPELL (CAR X)
-                                             70 KNOWNFNS NIL X)) collect 
-          
-          (* ;; "The FMEMB check is necessary for when VARS=DEFS, as the reason that the function was not removed from FNLST may have been because this was a compiled file.")
+                  [if FILEMAP
+                      then
+                      (if (NEQ FILEMAPEND (CAR FILEMAP))
+                          then                               (* ; "something was added")
+                               (PUTFILEMAP FILE FILEMAP FILECREATEDLST)
+                               (if (AND UPDATEMAPFLG (UPDATEFILEMAP INSTREAM FILEMAP))
+                                   then (SETQ MAPUPDATED T)))
+                      (if (AND DWIMFLG (NOT NOSPELLFLG)
+                               (LISTP FNLST))
+                          then                               (* ; 
+                                                       "There are still FNS left that we didn't find")
+                          (if
+                           (SETQ TEM
+                            (for X on FNLST
+                               bind [KNOWNFNS _
+                                           (for TRIPLE in (CDR FILEMAP)
+                                              join           (* ; 
+                                   "makes a list of functions found for use for spelling correction.")
+                                                   (if (LISTP (SETQ TEM (CDDR TRIPLE)))
+                                                       then  (* ; 
+                            "This is for normal source files, where TRIPLE = (start end . fnEntries)")
+                                                            (MAPCAR TEM (FUNCTION CAR))
+                                                     elseif TEM
+                                                       then  (* ; 
+                                                      "For compiled files, TRIPLE = (start end . fn)")
+                                                            (LIST TEM]
+                               when (AND (NOT (FMEMB (CAR X)
+                                                     KNOWNFNS))
+                                         (FIXSPELL (CAR X)
+                                                70 KNOWNFNS NIL X)) collect 
 
-                                                                       (CAR X)))
-                        then (if MAPUPDATED
-                                 then                        (* ; "UPDATEFILEMAP had closed the file")
-                                      [RPLACA (CDR RESETSAVER)
-                                             (SETQ INSTREAM (OPENSTREAM FILE 'INPUT]
-                                      (INPUT INSTREAM))
-                             (SCANFILE1 FILEMAP TEM]
-            (if (AND NOT-FOUNDTAG (LISTP FNLST))
-                then (SETQ DONELST (CONS (CONS NOT-FOUNDTAG FNLST)
-                                         DONELST)))
-            (if
-             [AND
-              NOT-FOUNDTAG
-              (LISTP VARLST)
-              (SETQ TEM
-               (if (FNTYP VARLST)
-                   then (AND (NULL DONELST)
-                             (LIST VARLST))
-                 else (for X in VARLST collect X
-                         unless (PROGN 
-          
-          (* ;; "Reason for this is if user says LOADVARS (DEFLIST file), then DEFLIST is not removed from VARLST, since you want all such instances.")
+                                 (* ;; "The FMEMB check is necessary for when VARS=DEFS, as the reason that the function was not removed from FNLST may have been because this was a compiled file.")
 
-                                       (for Y in DONELST
-                                          thereis (if (ATOM X)
-                                                      then (OR (EQ X (CAR Y))
-                                                               (EQ X (CADR Y)))
-                                                    else (EDIT4E X Y]
-                then (SETQ DONELST (CONS (CONS NOT-FOUNDTAG TEM)
-                                         DONELST)))
-            (if (EQ LDFLG 'SYSLOAD)
-                then (AND (NOT (MEMB (SETQ ROOTNAME (ROOTFILENAME FILE (CDR FILECREATEDLST)))
-                                     SYSFILES))
-                          (SETQ SYSFILES (NCONC1 SYSFILES ROOTNAME)))
-                     (SMASHFILECOMS ROOTNAME)
-              elseif FILEPKGFLG
-                then (AND (NEQ VARS 'FILEMAP)
-                          (NEQ LDFLG 'EXPRESSIONS)
-                          (NEQ LDFLG 'GETDEF)
-                          (ADDFILE FILE (SELECTQ VARS
-                                            ((T LOADFROM) 
-                                                 'LOADFNS)
-                                            (LOADCOMP 'LOADCOMP)
-                                            'loadfns)
-                                 PRLST FILECREATEDLST]
-           (RETURN (if (EQ VARS 'FILEMAP)
-                       then FILEMAP
-                     elseif (EQ VARS 'LOADFROM)
-                       then FILE
-                     else (DREVERSE DONELST])
+                                                                          (CAR X)))
+                              then (if MAPUPDATED
+                                       then                  (* ; "UPDATEFILEMAP had closed the file")
+                                            [RPLACA (CDR RESETSAVER)
+                                                   (SETQ INSTREAM (OPENSTREAM FILE 'INPUT]
+                                            (INPUT INSTREAM))
+                                   (SCANFILE1 FILEMAP TEM]
+                  (if (AND NOT-FOUNDTAG (LISTP FNLST))
+                      then (SETQ DONELST (CONS (CONS NOT-FOUNDTAG FNLST)
+                                               DONELST)))
+                  (if
+                   [AND
+                    NOT-FOUNDTAG
+                    (LISTP VARLST)
+                    (SETQ TEM
+                     (if (FNTYP VARLST)
+                         then (AND (NULL DONELST)
+                                   (LIST VARLST))
+                       else (for X in VARLST collect X
+                               unless (PROGN 
+
+                                 (* ;; "Reason for this is if user says LOADVARS (DEFLIST file), then DEFLIST is not removed from VARLST, since you want all such instances.")
+
+                                             (for Y in DONELST
+                                                thereis (if (ATOM X)
+                                                            then (OR (EQ X (CAR Y))
+                                                                     (EQ X (CADR Y)))
+                                                          else (EDIT4E X Y]
+                      then (SETQ DONELST (CONS (CONS NOT-FOUNDTAG TEM)
+                                               DONELST)))
+                  (if (EQ LDFLG 'SYSLOAD)
+                      then (AND (NOT (MEMB (SETQ ROOTNAME (ROOTFILENAME FILE (CDR FILECREATEDLST)))
+                                           SYSFILES))
+                                (SETQ SYSFILES (NCONC1 SYSFILES ROOTNAME)))
+                           (SMASHFILECOMS ROOTNAME)
+                    elseif FILEPKGFLG
+                      then (AND (NEQ VARS 'FILEMAP)
+                                (NEQ LDFLG 'EXPRESSIONS)
+                                (NEQ LDFLG 'GETDEF)
+                                (ADDFILE FILE (SELECTQ VARS
+                                                  ((T LOADFROM) 
+                                                       'LOADFNS)
+                                                  (LOADCOMP 'LOADCOMP)
+                                                  'loadfns)
+                                       PRLST FILECREATEDLST))))
+              (RETURN (if (EQ VARS 'FILEMAP)
+                          then FILEMAP
+                        elseif (EQ VARS 'LOADFROM)
+                          then FILE
+                        else (DREVERSE DONELST])])
 
 (LOADFNS-FINDFILE
   [LAMBDA (FN)                                               (* bvm%: "27-Sep-86 15:03")
@@ -883,13 +881,12 @@ A map of non-functions is not kept because (a) it would not be of use to MAKEFIL
        (SPECVARS VARLST)
        (RETFNS SCANFILE0))
 )
-(PUTPROPS LOADFNS COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1986 1987 1989 1990 2018 2022))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1224 19374 (LOADFROM 1234 . 1707) (LOADBLOCK 1709 . 2217) (GETBLOCKDEC 2219 . 3084) (
-LOADCOMP 3086 . 4249) (LOADCOMP? 4251 . 4951) (LOADVARS 4953 . 5033) (LOADEFS 5035 . 5179) (
-LOADFILEMAP 5181 . 5585) (LOADFNS 5587 . 17659) (LOADFNS-FINDFILE 17661 . 18177) (LOADFNS-MAKELIST 
-18179 . 19372)) (19375 46586 (LOADFNSCAN 19385 . 19563) (SCANFILE0 19565 . 22972) (SCANCOMPILEDFN 
-22974 . 25276) (SCANDEFINEQ 25278 . 30576) (SCANEXP 30578 . 35329) (SCANDECLARECOLON 35331 . 39535) (
-SCANFILE1 39537 . 43619) (SCANFILE2 43621 . 43907) (TMPSUBFN 43909 . 45073) (RETRYSCAN 45075 . 45472) 
-(SCANFILEHELP 45474 . 46584)))))
+  (FILEMAP (NIL (1112 19926 (LOADFROM 1122 . 1595) (LOADBLOCK 1597 . 2105) (GETBLOCKDEC 2107 . 2972) (
+LOADCOMP 2974 . 4137) (LOADCOMP? 4139 . 4839) (LOADVARS 4841 . 4921) (LOADEFS 4923 . 5067) (
+LOADFILEMAP 5069 . 5473) (LOADFNS 5475 . 18211) (LOADFNS-FINDFILE 18213 . 18729) (LOADFNS-MAKELIST 
+18731 . 19924)) (19927 47138 (LOADFNSCAN 19937 . 20115) (SCANFILE0 20117 . 23524) (SCANCOMPILEDFN 
+23526 . 25828) (SCANDEFINEQ 25830 . 31128) (SCANEXP 31130 . 35881) (SCANDECLARECOLON 35883 . 40087) (
+SCANFILE1 40089 . 44171) (SCANFILE2 44173 . 44459) (TMPSUBFN 44461 . 45625) (RETRYSCAN 45627 . 46024) 
+(SCANFILEHELP 46026 . 47136)))))
 STOP
diff --git a/sources/LOADFNS.LCOM b/sources/LOADFNS.LCOM
index ee8151b6..82f32fb1 100644
Binary files a/sources/LOADFNS.LCOM and b/sources/LOADFNS.LCOM differ
