diff --git a/VersionASM b/VersionASM
index 4d125dad80bb863aa2d414d6c06a5ba98f901b38..4182f3c4255f5927436057f3a284c4fc0cb89f39 100644
--- a/VersionASM
+++ b/VersionASM
@@ -6,9 +6,9 @@
 			GBLS	Module_MinorVersion
 			GBLS	Module_Date
 			GBLS	Module_FullVersion
-Module_MajorVersion	SETS    "4.78"
-Module_Version          SETA    478
+Module_MajorVersion	SETS    "4.79"
+Module_Version          SETA    479
 Module_MinorVersion	SETS	""
-Module_Date		SETS    "06 May 1999"
-Module_FullVersion      SETS    "4.78"
+Module_Date		SETS    "07 May 1999"
+Module_FullVersion      SETS    "4.79"
                         END
diff --git a/VersionNum b/VersionNum
index c3c024454ca026163b34f4b3614db7ce3e6bcc5e..b4e55de902b920ab02917fa6dcabcd8389926be0 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,15 +1,15 @@
-/* (4.78)
+/* (4.79)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  *
  */
-#define Module_MajorVersion_CMHG     	4.78
+#define Module_MajorVersion_CMHG     	4.79
 #define Module_MinorVersion_CMHG	
-#define Module_Date_CMHG      		06 May 1999
+#define Module_Date_CMHG      		07 May 1999
 
-#define Module_MajorVersion     	"4.78"
-#define Module_Version                  478
+#define Module_MajorVersion     	"4.79"
+#define Module_Version                  479
 #define Module_MinorVersion		""
-#define Module_Date      		"06 May 1999"
+#define Module_Date      		"07 May 1999"
 
-#define Module_FullVersion              "4.78"
+#define Module_FullVersion              "4.79"
diff --git a/hdr/ModHand b/hdr/ModHand
index 841754e820475a68b41daa5df15ae89fa711c250..79cf00fac2ca4c876d434379c81a4b57359c757e 100644
--- a/hdr/ModHand
+++ b/hdr/ModHand
@@ -39,6 +39,7 @@ OldOpt SETA {OPT}
 ; 29-Jul-87  APT   LookupName
 ; 17-Aug-87  APT   EnumerateROM_Modules
 ; 23-Jan-91  TMD   EnumerateROM_ModulesWithInfo
+; 07-May-99  KJB   FindEndOfROM_ModuleChain
 
 ModHandReason_Run                          * 0
 ModHandReason_Load                         * 1
@@ -61,6 +62,7 @@ ModHandReason_AddPoduleModule              * 17
 ModHandReason_LookupName                   * 18
 ModHandReason_EnumerateROM_Modules         * 19
 ModHandReason_EnumerateROM_ModulesWithInfo * 20
+ModHandReason_FindEndOfROM_ModuleChain     * 21
 
 ; Real module offsets
 
diff --git a/s/ModHand b/s/ModHand
index f5917fff656e0b5f97a210046f031cce583afffb..f6cd122e56f18f3c40b74b3c5d2744c4a4792d6b 100644
--- a/s/ModHand
+++ b/s/ModHand
@@ -547,6 +547,7 @@ ModuleHandler ROUT
      ModuleDispatchEntry LookupName
      ModuleDispatchEntry EnumerateROM_Modules
      ModuleDispatchEntry EnumerateROM_ModulesWithInfo
+     ModuleDispatchEntry FindEndOfROM_ModuleChain
 
 NaffSWI                                     ; Set V and return
         ADR     R0, ErrorBlock_BadModuleReason
@@ -1598,6 +1599,33 @@ Module_EnumerateROM_ModulesWithInfo ROUT
         Pull    "r8, r9, lr"                            ; restore registers
         ExitSWIHandler                                  ; and exit
 
+;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+; FindEndOfROM_ModuleChain
+;
+;  In :   R1 = -1    => ROM
+;            = other => reserved
+;
+;  Out:   R1 = preserved
+;         R2 -> first word after ROM module chain
+
+Module_FindEndOfROM_ModuleChain ROUT
+        CMP     r1, #-1                                 ; Only works for the system ROM at present
+        ADRNEL  r0, ErrorBlock_BadParameters
+      [ International
+        Push    "lr",NE
+        BLNE    TranslateError
+        Pull    "lr",EQ
+      ]
+        BNE     SLVK_SetV
+
+        ADRL    r2, SysModules_Info + 4                 ; Step through until the end of the module chain
+10      LDR     r11, [r2, #-4]
+        TEQ     r11, #0
+        ADDNE   r2, r2, r11
+        BNE     %BT10
+
+        ExitSWIHandler                                  ; and exit
+
 ;*************************************************************
 ; Support routines.
 ;