diff --git a/library/PSEUDOHOSTS b/library/PSEUDOHOSTS
index fb771830..a563e43b 100644
--- a/library/PSEUDOHOSTS
+++ b/library/PSEUDOHOSTS
@@ -1,12 +1,10 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "31-Dec-2024 11:45:23" {WMEDLEY}<library>PSEUDOHOSTS.;177 29713  
+(FILECREATED "16-May-2025 12:07:44" {DSK}<home>frank>il>qmedley>library>PSEUDOHOSTS.;2 31408  
 
-      :EDIT-BY rmk
+      :CHANGES-TO (FNS PSEUDOHOSTS)
 
-      :CHANGES-TO (FNS TRUEDEVICE)
-
-      :PREVIOUS-DATE "25-Dec-2024 07:38:10" {WMEDLEY}<library>PSEUDOHOSTS.;176)
+      :PREVIOUS-DATE "31-Dec-2024 11:45:23" {DSK}<home>frank>il>qmedley>library>PSEUDOHOSTS.;1)
 
 
 (PRETTYCOMPRINT PSEUDOHOSTSCOMS)
@@ -151,10 +149,32 @@
                           DEV)))])
 
 (PSEUDOHOSTS
-  [LAMBDA NIL                                                (* ; "Edited 17-Jan-2022 18:15 by rmk")
-    (FOR DEV IN \FILEDEVICES WHEN (TYPE? FDEV (FETCH (PHDEVICE TARGETDEV) OF DEV))
-       COLLECT (LIST (FETCH (FDEV DEVICENAME) OF DEV)
-                     (FETCH (PHDEVICE PREFIX) OF DEV])
+  [LAMBDA (NEW.HOSTS)                                        (* ; "Edited 17-Jan-2022 18:15 by rmk")
+                                                             (* ; "Edited 16-May-2025 9:16 by fgh")
+
+    (* ;; "")
+
+    (* ;; " Returns existing list of PSEUDOHOST pairs.  If NEW.HOSTS is T, all current pseudohosts are removed by calling (PSEUDOHOST HOST NIL) on each current pseudohost in turn.  Otherwise, NEW.HOSTS should be a list of (HOST PREFIX) pairs and all current pseudohosts are r(PSEUDOHOSTSemoved (as above) and the NEW.HOSTS pairs are used to create new pseudohosts by calling (PSEUDOHOST HOST PREFIX) sequentially in reverse order of the NEW.HOSTS list. Reverse order to ensure that (PSEUDOHOSTS (PSEUDOHOSTS))  doesn't impact the ordering in the PSEUDOHOST list.  This function is designed to be used cleanly with RESETSAVE.")
+
+    (* ;; "")
+
+    (LET [(CURRENT.HOSTS (for DEV in \FILEDEVICES when (type? FDEV (fetch (PHDEVICE TARGETDEV)
+                                                                      of DEV))
+                            collect (LIST (fetch (FDEV DEVICENAME) of DEV)
+                                          (fetch (PHDEVICE PREFIX) of DEV]
+         [COND
+            ((EQ NEW.HOSTS T)
+             (for HOST in CURRENT.HOSTS do (PSEUDOHOST (CAR HOST)
+                                                  NIL)))
+            [[AND (LISTP NEW.HOSTS)
+                  (for HOST in NEW.HOSTS always (AND (LISTP HOST)
+                                                     (NOT (CDDR HOST]
+             (for HOST in CURRENT.HOSTS do (PSEUDOHOST (CAR HOST)
+                                                  NIL))
+             (for HOST in (REVERSE NEW.HOSTS) do (PSEUDOHOST (CAR HOST)
+                                                        (CADR HOST]
+            (NEW.HOSTS (ERROR (CONCAT "PSEUDOHOSTS: Argument not valid:" NEW.HOSTS]
+         CURRENT.HOSTS])
 
 (TARGETHOST
   [LAMBDA (HOST)                                             (* ; "Edited 14-Dec-2024 15:26 by rmk")
@@ -562,13 +582,13 @@
        EXPORTS.ALL)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1318 12059 (PSEUDOHOST 1328 . 7036) (PSEUDOHOSTP 7038 . 7867) (PSEUDOHOSTS 7869 . 8230)
- (TARGETHOST 8232 . 9101) (TRUEDEVICE 9103 . 10059) (TRUEFILENAME 10061 . 11186) (PSEUDOFILENAME 11188
- . 12057)) (12087 18102 (EXPAND.PH 12097 . 13350) (CONTRACT.PH 13352 . 16063) (UNSLASHIT 16065 . 17811
-) (GETHOSTINFO.PH 17813 . 18100)) (18103 19004 (CDPSEUDO 18113 . 19002)) (19005 27025 (OPENFILE.PH 
-19015 . 20088) (GETFILENAME.PH 20090 . 20379) (DIRECTORYNAMEP.PH 20381 . 21005) (CLOSEFILE.PH 21007 . 
-21474) (REOPENFILE.PH 21476 . 22041) (DELETEFILE.PH 22043 . 22327) (OPENP.PH 22329 . 22624) (
-UNREGISTERFILE.PH 22626 . 23168) (REGISTERFILE.PH 23170 . 23704) (GENERATEFILES.PH 23706 . 24750) (
-GETFILEINFO.PH 24752 . 25054) (SETFILEINFO.PH 25056 . 25255) (NEXTFILEFN.PH 25257 . 25803) (
-FILEINFOFN.PH 25805 . 26080) (RENAMEFILE.PH 26082 . 27023)))))
+  (FILEMAP (NIL (1331 13754 (PSEUDOHOST 1341 . 7049) (PSEUDOHOSTP 7051 . 7880) (PSEUDOHOSTS 7882 . 9925)
+ (TARGETHOST 9927 . 10796) (TRUEDEVICE 10798 . 11754) (TRUEFILENAME 11756 . 12881) (PSEUDOFILENAME 
+12883 . 13752)) (13782 19797 (EXPAND.PH 13792 . 15045) (CONTRACT.PH 15047 . 17758) (UNSLASHIT 17760 . 
+19506) (GETHOSTINFO.PH 19508 . 19795)) (19798 20699 (CDPSEUDO 19808 . 20697)) (20700 28720 (
+OPENFILE.PH 20710 . 21783) (GETFILENAME.PH 21785 . 22074) (DIRECTORYNAMEP.PH 22076 . 22700) (
+CLOSEFILE.PH 22702 . 23169) (REOPENFILE.PH 23171 . 23736) (DELETEFILE.PH 23738 . 24022) (OPENP.PH 
+24024 . 24319) (UNREGISTERFILE.PH 24321 . 24863) (REGISTERFILE.PH 24865 . 25399) (GENERATEFILES.PH 
+25401 . 26445) (GETFILEINFO.PH 26447 . 26749) (SETFILEINFO.PH 26751 . 26950) (NEXTFILEFN.PH 26952 . 
+27498) (FILEINFOFN.PH 27500 . 27775) (RENAMEFILE.PH 27777 . 28718)))))
 STOP
diff --git a/library/PSEUDOHOSTS.LCOM b/library/PSEUDOHOSTS.LCOM
index 77789e6c..3f8e0a28 100644
Binary files a/library/PSEUDOHOSTS.LCOM and b/library/PSEUDOHOSTS.LCOM differ
diff --git a/library/PSEUDOHOSTS.TEDIT b/library/PSEUDOHOSTS.TEDIT
index eef3a5f3..ea981028 100644
Binary files a/library/PSEUDOHOSTS.TEDIT and b/library/PSEUDOHOSTS.TEDIT differ
