diff --git a/sources/FONT b/sources/FONT
index 6e40fa42..e5ea0bb5 100644
--- a/sources/FONT
+++ b/sources/FONT
@@ -1,13 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "17-Oct-2025 19:43:25" {WMEDLEY}<sources>FONT.;621 286216 
+(FILECREATED " 6-Nov-2025 13:54:22" {WMEDLEY}<sources>FONT.;623 285863 
 
       :EDIT-BY rmk
 
       :CHANGES-TO (VARS FONTCOMS)
-                  (FNS MONOSPACEFONTP)
+                  (FNS FONTSAVAILABLE)
 
-      :PREVIOUS-DATE "13-Oct-2025 21:33:14" {WMEDLEY}<sources>FONT.;620)
+      :PREVIOUS-DATE "20-Oct-2025 09:54:15" {WMEDLEY}<sources>FONT.;622)
 
 
 (PRETTYCOMPRINT FONTCOMS)
@@ -66,12 +66,12 @@
         (FNS FONTSAVAILABLE FONTEXISTS? \SEARCHFONTFILES FLUSHFONTSINCORE FINDFONTFILES SORTFONTSPECS
              )
         (FNS MATCHFONTFACE MAKEFONTFACE FONTFACETOATOM)
-        (INITVARS \FONTSINCORE \FONTEXISTS?-CACHE \DEFAULTDEVICEFONTS)
+        (INITVARS \FONTSINCORE \FONTEXISTS?-CACHE \FONTSAVAILABLEFILECACHE \DEFAULTDEVICEFONTS)
         [COMS (GLOBALVARS \DEFAULTDEVICEFONTS \UNITWIDTHSVECTOR)
               (INITVARS \UNITWIDTHSVECTOR)
               (FNS \UNITWIDTHSVECTOR)
               (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\UNITWIDTHSVECTOR]
-        (DECLARE%: DONTCOPY (EXPORT (RECORDS FONTCLASS FONTDESCRIPTOR FONTFACE CHARSETINFO FONTSPEC)
+        (DECLARE%: DONTCOPY [EXPORT (RECORDS FONTCLASS FONTDESCRIPTOR FONTFACE CHARSETINFO FONTSPEC)
                                    (MACROS FONTASCENT FONTDESCENT FONTHEIGHT \FGETOFFSET \FSETOFFSET
                                           \FGETWIDTH \FSETWIDTH \FGETCHARWIDTH \FSETCHARWIDTH 
                                           \FGETIMAGEWIDTH \FSETIMAGEWIDTH)
@@ -79,8 +79,7 @@
                                           \CREATECSINFOELEMENT \CREATEFONTCHARSETVECTOR CHARSETPROP)
                                    (PROP ARGNAMES CHARSETPROP)
                                    (CONSTANTS (SLUGCHARINDEX (ADD1 \MAXTHINCHAR))
-                                          (SLUGCHARSET (ADD1 \MAXCHARSET)))
-                                   (MACROS LEGACYFONTS))
+                                          (SLUGCHARSET (ADD1 \MAXCHARSET]
                (MACROS INDIRECTCHARSETP))
         (FNS FONTDESCRIPTOR.DEFPRINT FONTCLASS.DEFPRINT)
         (INITRECORDS FONTCLASS FONTDESCRIPTOR CHARSETINFO)
@@ -2795,7 +2794,8 @@
 (DEFINEQ
 
 (FONTSAVAILABLE
-  [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE CHECKFILESTOO?)  (* ; "Edited 25-Sep-2025 18:39 by rmk")
+  [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE CHECKFILESTOO?)  (* ; "Edited  6-Nov-2025 13:50 by rmk")
+                                                             (* ; "Edited 25-Sep-2025 18:39 by rmk")
                                                              (* ; "Edited 30-Aug-2025 13:55 by rmk")
                                                              (* ; "Edited 28-Aug-2025 14:43 by rmk")
                                                              (* ; "Edited 23-Aug-2025 10:51 by rmk")
@@ -2810,48 +2810,63 @@
 
 (* ;;; "returns a list of the fonts fitting a description that are available.  FAMILY SIZE FACE or ROTATION can be * which means get them all.  if CHECKFILESTOO? is NIL, only fonts in core will be considered. If ONLY, fonts in memory will be ignored. ")
 
-    (DECLARE (GLOBALVARS \FONTSINCORE))
-    (LET ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE)))
-         (if (EQ '* (fetch (FONTSPEC FSDEVICE) of FONTSPEC))
-             then 
-                  (* ;; 
+    (DECLARE (GLOBALVARS \FONTSINCORE \FONTSAVAILABLEFILECACHE))
+    (LET
+     ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE))
+      FILEFONTS)
+     (if (EQ '* (fetch (FONTSPEC FSDEVICE) of FONTSPEC))
+         then 
+              (* ;; 
  "The results for each device will be grouped together, because the sort happens in the clause below")
 
-                  (for I in IMAGESTREAMTYPES join (FONTSAVAILABLE FONTSPEC NIL NIL NIL (CAR I)
-                                                         CHECKFILESTOO?))
-           else (SPREADFONTSPEC FONTSPEC)                    (* ; "For easier matching code")
-                (SORTFONTSPECS (UNION (CL:UNLESS (EQ 'ONLY CHECKFILESTOO?)
-                                          [COLLECTMULTI \FONTSINCORE
-                                                 (FUNCTION (LAMBDA (FM S FC R D FONT)
-                                                             (DECLARE (USEDFREE $$COLLECT))
-                                                             (CL:WHEN 
-                                                                 [AND (OR (EQ FAMILY FM)
-                                                                          (EQ FAMILY '*))
-                                                                      (OR (EQ SIZE S)
-                                                                          (EQ SIZE '*))
-                                                                      (MATCHFONTFACE FACE FC)
-                                                                      (OR (EQ ROTATION R)
-                                                                          (EQ ROTATION '*))
-                                                                      (OR (EQ DEVICE D)
-                                                                          (EQ DEVICE '*]
-                                                                 (push $$COLLECT
-                                                                       (create FONTSPEC
-                                                                              FSFAMILY _ FM
-                                                                              FSSIZE _ S
-                                                                              FSFACE _ FC
-                                                                              FSROTATION _ R
-                                                                              FSDEVICE _ D)))])
-                                      (CL:WHEN CHECKFILESTOO?(* ; 
+              (for I in IMAGESTREAMTYPES join (FONTSAVAILABLE FONTSPEC NIL NIL NIL (CAR I)
+                                                     CHECKFILESTOO?))
+       else
+       (SPREADFONTSPEC FONTSPEC)                             (* ; "For easier matching code")
+       (SORTFONTSPECS
+        (UNION (CL:UNLESS (EQ 'ONLY CHECKFILESTOO?)
+                   [COLLECTMULTI \FONTSINCORE
+                          (FUNCTION (LAMBDA (FM S FC R D FONT)
+                                      (DECLARE (USEDFREE $$COLLECT))
+                                      (CL:WHEN [AND (OR (EQ FAMILY FM)
+                                                        (EQ FAMILY '*))
+                                                    (OR (EQ SIZE S)
+                                                        (EQ SIZE '*))
+                                                    (MATCHFONTFACE FACE FC)
+                                                    (OR (EQ ROTATION R)
+                                                        (EQ ROTATION '*))
+                                                    (OR (EQ DEVICE D)
+                                                        (EQ DEVICE '*]
+                                          (push $$COLLECT
+                                                (create FONTSPEC
+                                                       FSFAMILY _ FM
+                                                       FSSIZE _ S
+                                                       FSFACE _ FC
+                                                       FSROTATION _ R
+                                                       FSDEVICE _ D)))])
+               (CL:WHEN CHECKFILESTOO?                       (* ; 
                                                              "apply the device font lookup function.")
-                                          (LET [(FN (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE
-                                                                    'FONTSAVAILABLE))
-                                                        (FUNCTION \SEARCHFONTFILES]
+                   (SETQ FILEFONTS (SGETMULTI \FONTSAVAILABLEFILECACHE FAMILY SIZE FACE ROTATION 
+                                          DEVICE))
 
-                                               (* ;; "Until all the device functions take a FONTSPEC")
+                   (* ;; "APPEND the cache value because of the SORT")
 
-                                               (CL:IF (EQ 1 (NARGS FN))
-                                                   (APPLY* FN FONTSPEC)
-                                                   (APPLY* FN FAMILY SIZE FACE ROTATION DEVICE))))])
+                   (APPEND (if (NULL FILEFONTS)
+                               then (LET [(FN (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE 
+                                                              'FONTSAVAILABLE))
+                                                  (FUNCTION \SEARCHFONTFILES]
+
+                                         (* ;; "Until all the device functions take a FONTSPEC")
+
+                                         (SETQ FILEFONTS (CL:IF (EQ 1 (NARGS FN))
+                                                             (APPLY* FN FONTSPEC)
+                                                             (APPLY* FN FAMILY SIZE FACE ROTATION 
+                                                                    DEVICE)))
+                                         (SPUTMULTI \FONTSAVAILABLEFILECACHE FAMILY SIZE FACE 
+                                                ROTATION DEVICE (OR FILEFONTS 'NONE))
+                                         FILEFONTS)
+                             elseif (NEQ FILEFONTS 'NONE)
+                               then FILEFONTS)))])
 
 (FONTEXISTS?
   [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE NOCOERCIONS)     (* ; "Edited 26-Sep-2025 10:10 by rmk")
@@ -3154,6 +3169,8 @@
 
 (RPAQ? \FONTEXISTS?-CACHE NIL)
 
+(RPAQ? \FONTSAVAILABLEFILECACHE NIL)
+
 (RPAQ? \DEFAULTDEVICEFONTS NIL)
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
 
@@ -3422,19 +3439,6 @@
 (CONSTANTS (SLUGCHARINDEX (ADD1 \MAXTHINCHAR))
        (SLUGCHARSET (ADD1 \MAXCHARSET)))
 )
-(DECLARE%: EVAL@COMPILE 
-
-(PUTPROPS LEGACYFONTS MACRO ((F . FORMS)                     (* ; 
-                                                        "Execute FORMS in a  legacy font environment")
-                             (RESETLST
-                                 (RESETSAVE \FONTSINCORE NIL)
-                                 (RESETSAVE \FONTEXISTS?-CACHE)
-                                 (RESETSAVE DISPLAYFONTCOERCIONS)
-                                 (RESETSAVE DISPLAYCHARCOERCIONS)
-                                 (RESETSAVE DISPLAYFONTEXTENSIONS '(DISPLAYFONT))
-                                 (RESETSAVE DISPLAYFONTDIRECTORIES (MEDLEYDIR "fonts>displayfonts>"))
-                                 (PROGN F . FORMS))))
-)
 
 (* "END EXPORTED DEFINITIONS")
 
@@ -4650,44 +4654,44 @@
 (ADDTOVAR LAMA FONTCOPY)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (12132 21845 (CHARWIDTH 12142 . 12927) (CHARWIDTHY 12929 . 14446) (STRINGWIDTH 14448 . 
-15541) (\CHARWIDTH.DISPLAY 15543 . 15956) (\STRINGWIDTH.DISPLAY 15958 . 16382) (\STRINGWIDTH.GENERIC 
-16384 . 21843)) (21846 28366 (DEFAULTFONT 21856 . 23141) (FONTCLASS 23143 . 25305) (FONTCLASSUNPARSE 
-25307 . 26206) (FONTCLASSCOMPONENT 26208 . 26796) (SETFONTCLASSCOMPONENT 26798 . 27240) (
-GETFONTCLASSCOMPONENT 27242 . 28364)) (30045 54426 (FONTCREATE 30055 . 33300) (FONTCREATE1 33302 . 
-35917) (FONTCREATE.SLUGFD 35919 . 37401) (\FONT.CHECKARGS 37403 . 43993) (\FONT.CHECKARGS1 43995 . 
-48518) (\FONTCREATE1.NOFN 48520 . 48734) (FONTFILEP 48736 . 49624) (\READCHARSET 49626 . 54424)) (
-54427 61344 (\FONT.CHECKARGS 54437 . 61027) (\CHARSET.CHECK 61029 . 61342)) (61345 64428 (
-COERCEFONTSPEC 61355 . 64426)) (66498 67288 (MAKEFONTSPEC 66508 . 67286)) (67289 75466 (COMPLETE.FONT 
-67299 . 69822) (COMPLETEFONTP 69824 . 70447) (COMPLETE.CHARSET 70449 . 73134) (PRUNESLUGCSINFOS 73136
- . 74061) (MONOSPACEFONTP 74063 . 75464)) (75505 83426 (FONTASCENT 75515 . 75899) (FONTDESCENT 75901
- . 76386) (FONTHEIGHT 76388 . 76790) (FONTPROP 76792 . 82703) (\AVGCHARWIDTH 82705 . 83424)) (84083 
-84991 (FONTDEVICEPROP 84093 . 84989)) (85037 85891 (EDITCHAR 85047 . 85889)) (85937 98127 (
-GETCHARBITMAP 85947 . 87071) (PUTCHARBITMAP 87073 . 89231) (\GETCHARBITMAP.CSINFO 89233 . 91249) (
-\PUTCHARBITMAP.CSINFO 91251 . 98125)) (98128 118608 (MOVECHARBITMAP 98138 . 100032) (MOVEFONTCHARS 
-100034 . 103994) (\MOVEFONTCHAR 103996 . 108839) (\MOVEFONTCHARS.SOURCEDATA 108841 . 114946) (
-\MAKESLUGCHAR 114948 . 117483) (SLUGCHARP.DISPLAY 117485 . 118606)) (119541 139679 (FONTFILES 119551
- . 121384) (\FINDFONTFILE 121386 . 123103) (\FONTFILENAMES 123105 . 124100) (\FONTFILENAME 124102 . 
-128085) (\FONTFILENAME.OLD 128087 . 131036) (\FONTFILENAME.NEW 131038 . 133295) (FONTSPECFROMFILENAME 
-133297 . 137398) (\FONTINFOFROMFILENAME.OLD 137400 . 139677)) (139946 175749 (FONTCOPY 139956 . 145019
-) (FONTP 145021 . 145320) (FONTUNPARSE 145322 . 147041) (SETFONTDESCRIPTOR 147043 . 148507) (
-\STREAMCHARWIDTH 148509 . 152673) (\COERCECHARSET 152675 . 155270) (\BUILDSLUGCSINFO 155272 . 158895) 
-(\FONTSYMBOL 158897 . 159547) (\DEVICESYMBOL 159549 . 160418) (\FONTFACE 160420 . 167610) (
-\FONTFACE.COLOR 167612 . 174532) (SETFONTCHARENCODING 174534 . 175747)) (175750 196301 (FONTSAVAILABLE
- 175760 . 180615) (FONTEXISTS? 180617 . 184595) (\SEARCHFONTFILES 184597 . 187682) (FLUSHFONTSINCORE 
-187684 . 190857) (FINDFONTFILES 190859 . 194073) (SORTFONTSPECS 194075 . 196299)) (196302 199725 (
-MATCHFONTFACE 196312 . 197127) (MAKEFONTFACE 197129 . 197969) (FONTFACETOATOM 197971 . 199723)) (
-199953 200445 (\UNITWIDTHSVECTOR 199963 . 200443)) (215788 217855 (FONTDESCRIPTOR.DEFPRINT 215798 . 
-217377) (FONTCLASS.DEFPRINT 217379 . 217853)) (221684 224474 (\CREATEKERNELEMENT 221694 . 222052) (
-\FSETLEFTKERN 222054 . 222545) (\FGETLEFTKERN 222547 . 224472)) (224475 234111 (\CREATEFONT 224485 . 
-225924) (\CREATECHARSET 225926 . 229862) (\INSTALLCHARSETINFO 229864 . 233198) (
-\INSTALLCHARSETINFO.CHARENCODING 233200 . 234109)) (234433 235797 (\FONTRESETCHARWIDTHS 234443 . 
-235795)) (236427 246474 (\CREATEDISPLAYFONT 236437 . 238286) (\CREATECHARSET.DISPLAY 238288 . 243997) 
-(\FONTEXISTS?.DISPLAY 243999 . 246472)) (246475 261340 (STRIKEFONT.FILEP 246485 . 247373) (
-STRIKEFONT.GETCHARSET 247375 . 252967) (WRITESTRIKEFONTFILE 252969 . 257880) (STRIKECSINFO 257882 . 
-261338)) (261371 277688 (MAKEBOLD.CHARSET 261381 . 265030) (MAKEBOLD.CHAR 265032 . 266784) (
-MAKEITALIC.CHARSET 266786 . 270459) (MAKEITALIC.CHAR 270461 . 272807) (\SFMAKEBOLD 272809 . 275033) (
-\SFMAKEITALIC 275035 . 277686)) (277689 281838 (\SFMAKEROTATEDFONT 277699 . 279100) (\SFROTATECSINFO 
-279102 . 279739) (\SFROTATEFONTCHARACTERS 279741 . 280121) (\SFROTATECSINFOOFFSETS 280123 . 281836)) (
-281839 283220 (\SFMAKECOLOR 281849 . 283218)))))
+  (FILEMAP (NIL (12098 21811 (CHARWIDTH 12108 . 12893) (CHARWIDTHY 12895 . 14412) (STRINGWIDTH 14414 . 
+15507) (\CHARWIDTH.DISPLAY 15509 . 15922) (\STRINGWIDTH.DISPLAY 15924 . 16348) (\STRINGWIDTH.GENERIC 
+16350 . 21809)) (21812 28332 (DEFAULTFONT 21822 . 23107) (FONTCLASS 23109 . 25271) (FONTCLASSUNPARSE 
+25273 . 26172) (FONTCLASSCOMPONENT 26174 . 26762) (SETFONTCLASSCOMPONENT 26764 . 27206) (
+GETFONTCLASSCOMPONENT 27208 . 28330)) (30011 54392 (FONTCREATE 30021 . 33266) (FONTCREATE1 33268 . 
+35883) (FONTCREATE.SLUGFD 35885 . 37367) (\FONT.CHECKARGS 37369 . 43959) (\FONT.CHECKARGS1 43961 . 
+48484) (\FONTCREATE1.NOFN 48486 . 48700) (FONTFILEP 48702 . 49590) (\READCHARSET 49592 . 54390)) (
+54393 61310 (\FONT.CHECKARGS 54403 . 60993) (\CHARSET.CHECK 60995 . 61308)) (61311 64394 (
+COERCEFONTSPEC 61321 . 64392)) (66464 67254 (MAKEFONTSPEC 66474 . 67252)) (67255 75432 (COMPLETE.FONT 
+67265 . 69788) (COMPLETEFONTP 69790 . 70413) (COMPLETE.CHARSET 70415 . 73100) (PRUNESLUGCSINFOS 73102
+ . 74027) (MONOSPACEFONTP 74029 . 75430)) (75471 83392 (FONTASCENT 75481 . 75865) (FONTDESCENT 75867
+ . 76352) (FONTHEIGHT 76354 . 76756) (FONTPROP 76758 . 82669) (\AVGCHARWIDTH 82671 . 83390)) (84049 
+84957 (FONTDEVICEPROP 84059 . 84955)) (85003 85857 (EDITCHAR 85013 . 85855)) (85903 98093 (
+GETCHARBITMAP 85913 . 87037) (PUTCHARBITMAP 87039 . 89197) (\GETCHARBITMAP.CSINFO 89199 . 91215) (
+\PUTCHARBITMAP.CSINFO 91217 . 98091)) (98094 118574 (MOVECHARBITMAP 98104 . 99998) (MOVEFONTCHARS 
+100000 . 103960) (\MOVEFONTCHAR 103962 . 108805) (\MOVEFONTCHARS.SOURCEDATA 108807 . 114912) (
+\MAKESLUGCHAR 114914 . 117449) (SLUGCHARP.DISPLAY 117451 . 118572)) (119507 139645 (FONTFILES 119517
+ . 121350) (\FINDFONTFILE 121352 . 123069) (\FONTFILENAMES 123071 . 124066) (\FONTFILENAME 124068 . 
+128051) (\FONTFILENAME.OLD 128053 . 131002) (\FONTFILENAME.NEW 131004 . 133261) (FONTSPECFROMFILENAME 
+133263 . 137364) (\FONTINFOFROMFILENAME.OLD 137366 . 139643)) (139912 175715 (FONTCOPY 139922 . 144985
+) (FONTP 144987 . 145286) (FONTUNPARSE 145288 . 147007) (SETFONTDESCRIPTOR 147009 . 148473) (
+\STREAMCHARWIDTH 148475 . 152639) (\COERCECHARSET 152641 . 155236) (\BUILDSLUGCSINFO 155238 . 158861) 
+(\FONTSYMBOL 158863 . 159513) (\DEVICESYMBOL 159515 . 160384) (\FONTFACE 160386 . 167576) (
+\FONTFACE.COLOR 167578 . 174498) (SETFONTCHARENCODING 174500 . 175713)) (175716 196655 (FONTSAVAILABLE
+ 175726 . 180969) (FONTEXISTS? 180971 . 184949) (\SEARCHFONTFILES 184951 . 188036) (FLUSHFONTSINCORE 
+188038 . 191211) (FINDFONTFILES 191213 . 194427) (SORTFONTSPECS 194429 . 196653)) (196656 200079 (
+MATCHFONTFACE 196666 . 197481) (MAKEFONTFACE 197483 . 198323) (FONTFACETOATOM 198325 . 200077)) (
+200349 200841 (\UNITWIDTHSVECTOR 200359 . 200839)) (215435 217502 (FONTDESCRIPTOR.DEFPRINT 215445 . 
+217024) (FONTCLASS.DEFPRINT 217026 . 217500)) (221331 224121 (\CREATEKERNELEMENT 221341 . 221699) (
+\FSETLEFTKERN 221701 . 222192) (\FGETLEFTKERN 222194 . 224119)) (224122 233758 (\CREATEFONT 224132 . 
+225571) (\CREATECHARSET 225573 . 229509) (\INSTALLCHARSETINFO 229511 . 232845) (
+\INSTALLCHARSETINFO.CHARENCODING 232847 . 233756)) (234080 235444 (\FONTRESETCHARWIDTHS 234090 . 
+235442)) (236074 246121 (\CREATEDISPLAYFONT 236084 . 237933) (\CREATECHARSET.DISPLAY 237935 . 243644) 
+(\FONTEXISTS?.DISPLAY 243646 . 246119)) (246122 260987 (STRIKEFONT.FILEP 246132 . 247020) (
+STRIKEFONT.GETCHARSET 247022 . 252614) (WRITESTRIKEFONTFILE 252616 . 257527) (STRIKECSINFO 257529 . 
+260985)) (261018 277335 (MAKEBOLD.CHARSET 261028 . 264677) (MAKEBOLD.CHAR 264679 . 266431) (
+MAKEITALIC.CHARSET 266433 . 270106) (MAKEITALIC.CHAR 270108 . 272454) (\SFMAKEBOLD 272456 . 274680) (
+\SFMAKEITALIC 274682 . 277333)) (277336 281485 (\SFMAKEROTATEDFONT 277346 . 278747) (\SFROTATECSINFO 
+278749 . 279386) (\SFROTATEFONTCHARACTERS 279388 . 279768) (\SFROTATECSINFOOFFSETS 279770 . 281483)) (
+281486 282867 (\SFMAKECOLOR 281496 . 282865)))))
 STOP
diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM
index 98ce344a..51df1d80 100644
Binary files a/sources/FONT.LCOM and b/sources/FONT.LCOM differ
