diff --git a/VersionASM b/VersionASM
index 3e38721dcde5426df3a1268f4aea1356087befd1..e8b0b3262e73322101508caff281ee7a9e7d3c28 100644
--- a/VersionASM
+++ b/VersionASM
@@ -11,14 +11,14 @@
                         GBLS    Module_HelpVersion
                         GBLS    Module_ComponentName
                         GBLS    Module_ComponentPath
-Module_MajorVersion     SETS    "5.23"
-Module_Version          SETA    523
+Module_MajorVersion     SETS    "5.24"
+Module_Version          SETA    524
 Module_MinorVersion     SETS    ""
-Module_Date             SETS    "21 Nov 2000"
-Module_ApplicationDate2 SETS    "21-Nov-00"
-Module_ApplicationDate4 SETS    "21-Nov-2000"
+Module_Date             SETS    "22 Nov 2000"
+Module_ApplicationDate2 SETS    "22-Nov-00"
+Module_ApplicationDate4 SETS    "22-Nov-2000"
 Module_ComponentName    SETS    "RISC_OSLib"
 Module_ComponentPath    SETS    "RiscOS/Sources/Lib/RISC_OSLib"
-Module_FullVersion      SETS    "5.23"
-Module_HelpVersion      SETS    "5.23 (21 Nov 2000)"
+Module_FullVersion      SETS    "5.24"
+Module_HelpVersion      SETS    "5.24 (22 Nov 2000)"
                         END
diff --git a/VersionNum b/VersionNum
index 0947c128013d63970458c102edf81650a8673c2c..8d24fb36f117573e17fe1508d5cf35d9d5268fc3 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,22 +1,22 @@
-/* (5.23)
+/* (5.24)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  *
  */
-#define Module_MajorVersion_CMHG        5.23
+#define Module_MajorVersion_CMHG        5.24
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                21 Nov 2000
+#define Module_Date_CMHG                22 Nov 2000
 
-#define Module_MajorVersion             "5.23"
-#define Module_Version                  523
+#define Module_MajorVersion             "5.24"
+#define Module_Version                  524
 #define Module_MinorVersion             ""
-#define Module_Date                     "21 Nov 2000"
+#define Module_Date                     "22 Nov 2000"
 
-#define Module_ApplicationDate2         "21-Nov-00"
-#define Module_ApplicationDate4         "21-Nov-2000"
+#define Module_ApplicationDate2         "22-Nov-00"
+#define Module_ApplicationDate4         "22-Nov-2000"
 
 #define Module_ComponentName            "RISC_OSLib"
 #define Module_ComponentPath            "RiscOS/Sources/Lib/RISC_OSLib"
 
-#define Module_FullVersion              "5.23"
-#define Module_HelpVersion              "5.23 (21 Nov 2000)"
+#define Module_FullVersion              "5.24"
+#define Module_HelpVersion              "5.24 (22 Nov 2000)"
diff --git a/clib/Resources/SAfrica/Messages b/clib/Resources/SAfrica/Messages
new file mode 100644
index 0000000000000000000000000000000000000000..2cccb1f48b61730a98256d5ecb05a7ef7ca1ebfe
--- /dev/null
+++ b/clib/Resources/SAfrica/Messages
@@ -0,0 +1,75 @@
+#{DictTokens}
+C01:Not enough memory for C library
+C02:Unknown library chunk
+C04:Static data size in library and stub disagree
+C05:Static data offset not the same for all library chunks
+C06:Divide by zero
+C07:Illegal read
+C08:Illegal write
+
+#{Default}
+C10:, (heap overwritten)
+C11:Over-large or -ve size request
+C12:Not enough memory, malloc failed
+C13:Not enough memory, realloc failed, (bad user block)
+C14:deallocate of old block in realloc failed
+C15:free failed
+C16:deallocate failed
+C17:Not enough memory for I/O buffer or the like
+C18:coalesce failed
+C19:can't open %s for I/O redirection
+C20:missing double quotes
+C21:unsupported or illegal I/O redirection
+C22:%x in 
+C23:(address %p)
+C24:Postmortem requested
+C25:  Arg%d: %#.8x %d
+C26:shared library function
+C27:anonymous function
+C28:function %s
+C29:unknown procedure
+C30:%s procedure %s
+C31:anonymous %s procedure
+C32:stack overwritten
+C33:*** unrecoverable error in run time system: 
+C34:*** assertion failed: %s, file %s, line %d
+C35:No error (errno = 0)
+C36:EDOM - function argument out of range
+C37:ERANGE - function result not representable
+C38:Error code (errno) %d has no associated message
+C39:Unexpected termination (e.g. abort() function)
+C40:Illegal instruction (call to non-function/code overwritten)
+C41:Interrupt received from user - program terminated
+C42:Illegal address (e.g. wildly outside array bounds)
+C43:Termination request received
+C44:Unknown signal number %d
+C45:Not enough memory, stack overflow
+C46:Couldn't write %s
+C47:Couldn't read %s
+
+#{DictTokens}
+C48:No veneer
+C49:Exit called
+C50:Return code too large
+C51:No main program
+C53:Address Exception
+C54:Illegal Instruction
+C55:Internal error, no stack for trap handler: %0, pc = %1: registers at %2
+C57:Uncaught trap: %0, pc = %1: registers at %2
+C58:Internal error, trap while in trap handler: %0, pc = %1: registers at %2
+C60:Prefetch Abort
+C61:Data Abort
+C62:Shared C library not loaded
+C63:Shared C library is out of date
+C64:Not enough memory, allocate failed
+C65:Postmortem
+C66:ESIGNUM - incorrect signal number to signal() or raise()
+
+#{Default}
+C67:Stub data size = 
+C68:Library data size = 
+C69:unspecified error
+C70:unknown error
+
+#{DictTokens}
+C71:Calling standard no longer supported by C library
diff --git a/rlib/Resources/SAfrica/Messages b/rlib/Resources/SAfrica/Messages
new file mode 100644
index 0000000000000000000000000000000000000000..d0624cd3774680b509d164cc3726b3872c093299
--- /dev/null
+++ b/rlib/Resources/SAfrica/Messages
@@ -0,0 +1,30 @@
+alarm1:Unable to read monotonic time
+alarm2:Not enough memory to set alarm
+dbox1:Not enough memory to create dialogue box
+dbox2:Templates file not loaded for use with dialogue boxes
+flex1:Flex memory error
+flex2:Not enough memory, or not within *desktop world
+flex3:Flex not initialised
+fontmenu1:Incorrect parameter to font_makemenu
+fontmenu2:Not enough memory for font menu
+fontmenu3:Not enough memory for font identifier
+menu1:Not enough memory for menu
+resspr1:Not enough memory to load sprite file '%s'
+saveas1:To save, drag the icon to a directory display
+template1:Template '%s' not found
+template2:Not enough memory to load templates
+txtopt1:Not enough memory to cache options name
+signal1:Data abort
+signal2:Arithmetic exception
+signal3:Illegal instruction
+signal4:Escape
+signal5:Internal address error
+signal6:Termination request
+wimpt1:Unrecoverable internal error (%s), must exit immediately
+wimpt2:%s has suffered an unrecoverable internal error (%s) and must exit immediately
+wimpt3:Not enough memory for active windows
+win1:Too many windows
+win2:Not enough memory to change window title
+xferrecv1:Can't transfer file (Scrap directory not set)
+xferrecv2:Data transfer failed
+xfersend2:Selection
diff --git a/rlib/Resources/SAfrica/RCA/Messages b/rlib/Resources/SAfrica/RCA/Messages
new file mode 100644
index 0000000000000000000000000000000000000000..aafdf212a959d9488f85c6c098ed0fa7c855bbee
--- /dev/null
+++ b/rlib/Resources/SAfrica/RCA/Messages
@@ -0,0 +1,30 @@
+alarm1:Unable to read monotonic time
+alarm2:Not enough memory to set alarm
+dbox1:Not enough memory to create dialogue box
+dbox2:Templates file not loaded for use with dialogue boxes
+flex1:Flex memory error
+flex2:Not enough memory, or not within *desktop world
+flex3:Flex not initialised
+fontmenu1:Incorrect parameter to font_makemenu
+fontmenu2:Not enough memory for font menu
+fontmenu3:Not enough memory for font identifier
+menu1:Not enough memory for menu
+resspr1:Not enough memory to load sprite file '%s'
+saveas1:To save, drag the icon to a directory display
+template1:Template '%s' not found
+template2:Not enough memory to load templates
+txtopt1:Not enough memory to cache options name
+signal1:Data abort
+signal2:Arithmetic exception
+signal3:Illegal instruction
+signal4:Escape
+signal5:Internal address error
+signal6:Termination request
+wimpt1:The system has experienced a technical difficulty.  Please select continue.
+wimpt2:The system has experienced a technical difficulty.  Please select continue.
+wimpt3:Not enough memory for active windows
+win1:Too many windows
+win2:Not enough memory to change window title
+xferrecv1:Can't transfer file (Scrap directory not set)
+xferrecv2:Data transfer failed
+xfersend2:Selection