diff --git a/Resources/UK/Messages b/Resources/UK/Messages
index d02f3ef1026d22c6eab9976cd98dc4d598069dd7..039d060d144c3679d339912094bd25157f9d032e 100644
--- a/Resources/UK/Messages
+++ b/Resources/UK/Messages
@@ -68,7 +68,7 @@ BadExtend:Not enough memory (to extend heap)
 ExcessiveShrink:Can't shrink heap any further
 BadModuleReason:Unknown OS_Module call
 CantKill:Module is currently active
-MHNoRoom:The area of memory reserved for relocatable modules is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
+MHNoRoom:The area of memory reserved for relocatable modules is full
 NoMoreModules:No more modules
 NoMoreIncarnations:No more incarnations of that module
 PostfixNeeded:Postfix not specified
@@ -82,8 +82,8 @@ RMNotFoundInROM:Module is not in ROM
 NumbTooBig:Number too big
 BadBase:Base not recognised
 BadClaimNum:Bad vector number
-SysHeapFull:The area of memory reserved for the system heap is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
-NotAllMoved:There is not enough memory to perform this operation. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory. (Memory cannot be moved)
+SysHeapFull:The area of memory reserved for the system heap is full
+NotAllMoved:Memory can not be moved
 ChDynamCAO:Can't change memory area (application running)
 AplWSpaceInUse:Application memory area in use
 RAMFsUnchangeable:The size of the RAM filing system can only be changed when it is empty
diff --git a/Resources/UK/Morris4/Messages b/Resources/UK/Morris4/Messages
new file mode 100644
index 0000000000000000000000000000000000000000..d02f3ef1026d22c6eab9976cd98dc4d598069dd7
--- /dev/null
+++ b/Resources/UK/Morris4/Messages
@@ -0,0 +1,171 @@
+BadNumb:Number not recognised
+NoSuchSWI1:SWI &%0 not known
+VarCantFind:System variable '%0' not found
+BuffOverflow:Buffer overflow
+Escape:Escape
+Syntax:Syntax
+OptErr:Syntax: *Opt [<x> [[,] <y>]]
+NoHelp:No help found.
+HelpFound:==> Help on keyword %0
+Address:Address  :
+ASCII:ASCII data
+Unp:Unplugged modules are:
+NoUnp:No modules are unplugged
+Podule:(Podule %0)
+Extn:(Extn ROM %0)
+Modules:No. Position Workspace Name
+Number:(Number)
+Macro:(Macro)
+Result:Result is %0, value :
+Integer:an integer
+String:a string
+ROMMTitle:No. Position|IModule Name|I|IVersion|IStatus|M|J
+SYSROM:System ROM
+EXTROM:Extn ROM
+PODROM:Podule
+Active:Active
+Dormant:Dormant
+Unplugged:Unplugged
+Running:Running
+Untitled:<Untitled>
+Supervisor:Supervisor
+ErrSub:E
+YesNo:yn
+Config:Configuration
+Options:options:
+Status:status:
+Err: (Error number &%0)
+Error:Error: %0 (Error number &%1)
+UndefinedInstruction:Internal error: undefined instruction at &%0
+InstructionAbort:Internal error: abort on instruction fetch at &%0
+DataAbort:Internal error: abort on data transfer at &%0
+AddressException:Internal error: address exception at &%0
+BranchThrough0:Internal error: branch through zero
+SDoesntExist:Sprite doesn't exist
+ModuleTooOld:Module %0 too old
+NaffRelease:Bad vector release
+RMNotFound:Module %0 not found
+NaffDevNo:Bad device number
+BadDevVecRel:Bad device release
+RedirectFail:Redirection fails
+StackFull:Not enough memory on system stack
+OscliLongLine:Too long
+NoOscliSpecials:Special field not allowed in filing system prefix to OS_CLI
+OscliTooHard:Expansion too complex
+BadCommand:Command not recognised
+BadParmString:Parameter expansion contains unrecognised characters
+TooManyParms:Too many parameters
+BadKey:Key number must be in the range 0-15
+BadAddress:Address not recognised
+OutsideFile:Outside file
+NotABlock:Not a heap block
+BadDesc:Bad heap descriptor
+HeapBadReason:Bad reason code
+HeapFailInit:Can't initialise heap
+BadLink:Heap overwritten
+HeapFailAlloc:Not enough memory (in heap)
+BadExtend:Not enough memory (to extend heap)
+ExcessiveShrink:Can't shrink heap any further
+BadModuleReason:Unknown OS_Module call
+CantKill:Module is currently active
+MHNoRoom:The area of memory reserved for relocatable modules is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
+NoMoreModules:No more modules
+NoMoreIncarnations:No more incarnations of that module
+PostfixNeeded:Postfix not specified
+IncarnationExists:Incarnation already exists
+ChunkNotRM:Podule chunk is not a relocatable module
+ModulePostfix:'%%' in module title
+NotMod:This is not a relocatable module
+BadRMHeaderField:Illegal header field in module
+IncarnationNotFound:Incarnation not found
+RMNotFoundInROM:Module is not in ROM
+NumbTooBig:Number too big
+BadBase:Base not recognised
+BadClaimNum:Bad vector number
+SysHeapFull:The area of memory reserved for the system heap is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
+NotAllMoved:There is not enough memory to perform this operation. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory. (Memory cannot be moved)
+ChDynamCAO:Can't change memory area (application running)
+AplWSpaceInUse:Application memory area in use
+RAMFsUnchangeable:The size of the RAM filing system can only be changed when it is empty
+BadDynamicArea:Unknown dynamic area
+AreaAlreadyExists:Dynamic area already exists
+AreaNotOnPageBdy:Base address not on page boundary
+OverlappingAreas:Overlapping areas
+CantAllocateArea:Unable to allocate logical address space
+CantAllocateLevel2:Unable to allocate page tables for area
+UnknownAreaHandler:Unknown dynamic area handler call
+RCExc:Return code limit exceeded
+RCNegative:Negative return code
+BadString:String not recognised
+BadVarType:Bad variable type
+VarNoRoom:The area of memory reserved for the system variables is full. Use the Task Manager to make more space in the system heap/stack area.
+BadMacVal:Bad macro value
+BadVarNam:Variable name not recognised
+VarTooLong:Variable value too long
+BadParameters:Parameters not recognised
+ArgRepeated:Argument repeated
+BadBra:Mismatched brackets
+StkOFlo:Expression stack overflow
+MissOpn:Missing operand
+MissOpr:Missing operator
+BadInt:String is not convertible to integer
+StrOFlo:String too long
+NaffItm:Unknown operand
+DivZero:Division by zero
+NotNumeric:Numeric parameter needed
+NoThen:There is no THEN
+IsString:Expression is a string
+ConParmTooBig:Configure parameter too big
+BadConOpt:Configure option not recognised
+BadStat:Status option not recognised
+Config2manyparms:Too many parameters
+NoSuchSWI2:SWI name not known
+BadTime:Invalid time interval
+BadEnvNumber:Bad Environment number
+BadReadSysInfo:Unknown OS_ReadSysInfo call
+BadMODE:Not enough memory to change to this screen mode
+SNoWorkSpace:No memory is reserved for the system sprite area. Use the Task Manager to make some space for the system sprites.
+SNoRoom:Not enough memory to create sprite
+NoSprites:No sprites
+NotGraphics:Not a graphics mode
+SCantOpenFile:Can't open file
+SNotEnoughRoom:Not enough memory in sprite area
+SBadSpriteFile:Bad sprite file
+SNoRoomToMerge:Not enough memory to add sprite
+SBad2ndPtr:Bad 2nd ptr
+InvalidRowOrCol:Invalid row or column
+InvalidHeight:Invalid height
+InvalidWidth:Invalid width
+NoRoomToInsert:Not enough memory to insert row or column
+SpriteAlreadyExists:Sprite already exists
+InvalidSpriteMode:Invalid sprite mode
+SBadReasonCode:Bad sprite reason code
+CantInTeletext:Can't switch output in teletext mode
+SInvalidSaveArea:Invalid save area
+SpriteIsCurrentDest:Sprite is current destination
+BadDPI:Illegal XDPI or YDPI in sprite
+ModeNotAvailable:Screen mode not available
+BadPixelDepth:Bad pixel depth
+BadMSFlags:Illegal flags in mode selector
+CDATStackOverflow:System stack overflow
+NoSuchSWI:SWI not known
+BadSav:Incorrect number of parameters for *Save
+MonType:Monitor type reconfigured.
+NoKbd:No keyboard present - autobooting
+BreakPt:Stopped at break point at &%0
+STail:|J|MUse *Configure to set the options.|J|M
+CTail1:|J|MWhere:|J|MD is a decimal number, a hexadecimal number preceded by &,|J|Mor the base followed by underscore, followed|J|M
+CTail2:by digits in the given base.|J|MItems within [ ] are optional.|J|MUse *Status to display the current settings.|J|M
+Zonk:Unknown OS_ScreenMode reason code
+SNoMask:Mask or Palette operations not supported in this display depth
+BadVIDCDiv:Bad VIDC divider value
+BadPlatReas:Unknown OS_PlatformFeatures reason code
+
+600:ARM 600 Processor
+610:ARM 610 Processor
+700:ARM 700 Processor
+710:ARM 710 Processor
+7500:ARM 7500 Processor
+7500FE:ARM 7500FE Processor
+810:ARM 810 Processor
+SA110:StrongARM Processor
diff --git a/Resources/UK/Ursula/Messages b/Resources/UK/Ursula/Messages
new file mode 100644
index 0000000000000000000000000000000000000000..d02f3ef1026d22c6eab9976cd98dc4d598069dd7
--- /dev/null
+++ b/Resources/UK/Ursula/Messages
@@ -0,0 +1,171 @@
+BadNumb:Number not recognised
+NoSuchSWI1:SWI &%0 not known
+VarCantFind:System variable '%0' not found
+BuffOverflow:Buffer overflow
+Escape:Escape
+Syntax:Syntax
+OptErr:Syntax: *Opt [<x> [[,] <y>]]
+NoHelp:No help found.
+HelpFound:==> Help on keyword %0
+Address:Address  :
+ASCII:ASCII data
+Unp:Unplugged modules are:
+NoUnp:No modules are unplugged
+Podule:(Podule %0)
+Extn:(Extn ROM %0)
+Modules:No. Position Workspace Name
+Number:(Number)
+Macro:(Macro)
+Result:Result is %0, value :
+Integer:an integer
+String:a string
+ROMMTitle:No. Position|IModule Name|I|IVersion|IStatus|M|J
+SYSROM:System ROM
+EXTROM:Extn ROM
+PODROM:Podule
+Active:Active
+Dormant:Dormant
+Unplugged:Unplugged
+Running:Running
+Untitled:<Untitled>
+Supervisor:Supervisor
+ErrSub:E
+YesNo:yn
+Config:Configuration
+Options:options:
+Status:status:
+Err: (Error number &%0)
+Error:Error: %0 (Error number &%1)
+UndefinedInstruction:Internal error: undefined instruction at &%0
+InstructionAbort:Internal error: abort on instruction fetch at &%0
+DataAbort:Internal error: abort on data transfer at &%0
+AddressException:Internal error: address exception at &%0
+BranchThrough0:Internal error: branch through zero
+SDoesntExist:Sprite doesn't exist
+ModuleTooOld:Module %0 too old
+NaffRelease:Bad vector release
+RMNotFound:Module %0 not found
+NaffDevNo:Bad device number
+BadDevVecRel:Bad device release
+RedirectFail:Redirection fails
+StackFull:Not enough memory on system stack
+OscliLongLine:Too long
+NoOscliSpecials:Special field not allowed in filing system prefix to OS_CLI
+OscliTooHard:Expansion too complex
+BadCommand:Command not recognised
+BadParmString:Parameter expansion contains unrecognised characters
+TooManyParms:Too many parameters
+BadKey:Key number must be in the range 0-15
+BadAddress:Address not recognised
+OutsideFile:Outside file
+NotABlock:Not a heap block
+BadDesc:Bad heap descriptor
+HeapBadReason:Bad reason code
+HeapFailInit:Can't initialise heap
+BadLink:Heap overwritten
+HeapFailAlloc:Not enough memory (in heap)
+BadExtend:Not enough memory (to extend heap)
+ExcessiveShrink:Can't shrink heap any further
+BadModuleReason:Unknown OS_Module call
+CantKill:Module is currently active
+MHNoRoom:The area of memory reserved for relocatable modules is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
+NoMoreModules:No more modules
+NoMoreIncarnations:No more incarnations of that module
+PostfixNeeded:Postfix not specified
+IncarnationExists:Incarnation already exists
+ChunkNotRM:Podule chunk is not a relocatable module
+ModulePostfix:'%%' in module title
+NotMod:This is not a relocatable module
+BadRMHeaderField:Illegal header field in module
+IncarnationNotFound:Incarnation not found
+RMNotFoundInROM:Module is not in ROM
+NumbTooBig:Number too big
+BadBase:Base not recognised
+BadClaimNum:Bad vector number
+SysHeapFull:The area of memory reserved for the system heap is full. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
+NotAllMoved:There is not enough memory to perform this operation. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory. (Memory cannot be moved)
+ChDynamCAO:Can't change memory area (application running)
+AplWSpaceInUse:Application memory area in use
+RAMFsUnchangeable:The size of the RAM filing system can only be changed when it is empty
+BadDynamicArea:Unknown dynamic area
+AreaAlreadyExists:Dynamic area already exists
+AreaNotOnPageBdy:Base address not on page boundary
+OverlappingAreas:Overlapping areas
+CantAllocateArea:Unable to allocate logical address space
+CantAllocateLevel2:Unable to allocate page tables for area
+UnknownAreaHandler:Unknown dynamic area handler call
+RCExc:Return code limit exceeded
+RCNegative:Negative return code
+BadString:String not recognised
+BadVarType:Bad variable type
+VarNoRoom:The area of memory reserved for the system variables is full. Use the Task Manager to make more space in the system heap/stack area.
+BadMacVal:Bad macro value
+BadVarNam:Variable name not recognised
+VarTooLong:Variable value too long
+BadParameters:Parameters not recognised
+ArgRepeated:Argument repeated
+BadBra:Mismatched brackets
+StkOFlo:Expression stack overflow
+MissOpn:Missing operand
+MissOpr:Missing operator
+BadInt:String is not convertible to integer
+StrOFlo:String too long
+NaffItm:Unknown operand
+DivZero:Division by zero
+NotNumeric:Numeric parameter needed
+NoThen:There is no THEN
+IsString:Expression is a string
+ConParmTooBig:Configure parameter too big
+BadConOpt:Configure option not recognised
+BadStat:Status option not recognised
+Config2manyparms:Too many parameters
+NoSuchSWI2:SWI name not known
+BadTime:Invalid time interval
+BadEnvNumber:Bad Environment number
+BadReadSysInfo:Unknown OS_ReadSysInfo call
+BadMODE:Not enough memory to change to this screen mode
+SNoWorkSpace:No memory is reserved for the system sprite area. Use the Task Manager to make some space for the system sprites.
+SNoRoom:Not enough memory to create sprite
+NoSprites:No sprites
+NotGraphics:Not a graphics mode
+SCantOpenFile:Can't open file
+SNotEnoughRoom:Not enough memory in sprite area
+SBadSpriteFile:Bad sprite file
+SNoRoomToMerge:Not enough memory to add sprite
+SBad2ndPtr:Bad 2nd ptr
+InvalidRowOrCol:Invalid row or column
+InvalidHeight:Invalid height
+InvalidWidth:Invalid width
+NoRoomToInsert:Not enough memory to insert row or column
+SpriteAlreadyExists:Sprite already exists
+InvalidSpriteMode:Invalid sprite mode
+SBadReasonCode:Bad sprite reason code
+CantInTeletext:Can't switch output in teletext mode
+SInvalidSaveArea:Invalid save area
+SpriteIsCurrentDest:Sprite is current destination
+BadDPI:Illegal XDPI or YDPI in sprite
+ModeNotAvailable:Screen mode not available
+BadPixelDepth:Bad pixel depth
+BadMSFlags:Illegal flags in mode selector
+CDATStackOverflow:System stack overflow
+NoSuchSWI:SWI not known
+BadSav:Incorrect number of parameters for *Save
+MonType:Monitor type reconfigured.
+NoKbd:No keyboard present - autobooting
+BreakPt:Stopped at break point at &%0
+STail:|J|MUse *Configure to set the options.|J|M
+CTail1:|J|MWhere:|J|MD is a decimal number, a hexadecimal number preceded by &,|J|Mor the base followed by underscore, followed|J|M
+CTail2:by digits in the given base.|J|MItems within [ ] are optional.|J|MUse *Status to display the current settings.|J|M
+Zonk:Unknown OS_ScreenMode reason code
+SNoMask:Mask or Palette operations not supported in this display depth
+BadVIDCDiv:Bad VIDC divider value
+BadPlatReas:Unknown OS_PlatformFeatures reason code
+
+600:ARM 600 Processor
+610:ARM 610 Processor
+700:ARM 700 Processor
+710:ARM 710 Processor
+7500:ARM 7500 Processor
+7500FE:ARM 7500FE Processor
+810:ARM 810 Processor
+SA110:StrongARM Processor
diff --git a/VersionASM b/VersionASM
index ab1d6c2fbafeeb67f5e5e32447315ec0f5344408..6b62f8a8ad80ad987e27c8a0dbc429da2b9efd5a 100644
--- a/VersionASM
+++ b/VersionASM
@@ -6,9 +6,13 @@
                         GBLS    Module_MinorVersion
                         GBLS    Module_Date
                         GBLS    Module_FullVersion
-Module_MajorVersion     SETS    "5.28"
-Module_Version          SETA    528
+                        GBLS    Module_ApplicationDate2
+                        GBLS    Module_ApplicationDate4
+Module_MajorVersion     SETS    "5.29"
+Module_Version          SETA    529
 Module_MinorVersion     SETS    ""
-Module_Date             SETS    "12 May 2000"
-Module_FullVersion      SETS    "5.28"
+Module_Date             SETS    "27 Jun 2000"
+Module_ApplicationDate2 SETS    "27-Jun-00"
+Module_ApplicationDate4 SETS    "27-Jun-2000"
+Module_FullVersion      SETS    "5.29"
                         END
diff --git a/VersionNum b/VersionNum
index 386e46390537fe7aaa4b264b83912c8b9f0920e8..08f501dc1d7da1f4a322519b4127b6a5c88a15a3 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,15 +1,18 @@
-/* (5.28)
+/* (5.29)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  *
  */
-#define Module_MajorVersion_CMHG        5.28
+#define Module_MajorVersion_CMHG        5.29
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                12 May 2000
+#define Module_Date_CMHG                27 Jun 2000
 
-#define Module_MajorVersion             "5.28"
-#define Module_Version                  528
+#define Module_MajorVersion             "5.29"
+#define Module_Version                  529
 #define Module_MinorVersion             ""
-#define Module_Date                     "12 May 2000"
+#define Module_Date                     "27 Jun 2000"
 
-#define Module_FullVersion              "5.28"
+#define Module_ApplicationDate2         "27-Jun-00"
+#define Module_ApplicationDate4         "27-Jun-2000"
+
+#define Module_FullVersion              "5.29"