diff --git a/Options/s/!Default b/Options/s/!Default
index 60b9390bbd64c481f8a0ba9dc2623f27c7ad1e60..62adad9bd7de1ae4aea394c5dc54facc3ca20a99 100644
--- a/Options/s/!Default
+++ b/Options/s/!Default
@@ -24,6 +24,7 @@
 
         Option  Medusa,                 true                    ; support Medusa Memory management
         Option  ServiceCallTable,       true                    ; Add Ursula kernel Service Call table
+        Option  international_help,     true                    ; Kernel looks up help in the Messages file
         Option  BounceClose,            false                   ; debounce close icon
         Option  windowsprite,           true                    ; use tile_1 for colour 1 work areas
         Option  outlinefont,            true                    ; replace VDU 5 rendering of text with outline font
diff --git a/Options/s/32 b/Options/s/32
index 346507a98a7dffd8b76dc84a3133e1821e30a28a..eac33b5ca5af148e76d64f00056bc0dee12d3b15 100644
--- a/Options/s/32
+++ b/Options/s/32
@@ -32,6 +32,4 @@ module_postfix  SETS    " 32-bit"
         Option  MultiClose,             true                    ; Allow Ctrl-Alt clicks on close/iconise buttons
         Option  PushBothBars,           true                    ; Push in both scrollbars on adjust-drags
 
-        ASSERT  International_Help <> 0
-
         END
diff --git a/Options/s/Morris4 b/Options/s/Morris4
index 83896522645925915b96d77857168509a3108e06..4b4800f824bc27e188896f6ee1236e517db71c52 100644
--- a/Options/s/Morris4
+++ b/Options/s/Morris4
@@ -18,6 +18,4 @@
 
 module_postfix	SETS	" Morris4"
 
- 	ASSERT	International_Help <> 0
-
         END
diff --git a/Options/s/RO310 b/Options/s/RO310
index cc10ddf99f9c643c8b671999f9e3bd35a9325b5a..565f9f6813dde61f69bc3de9d1cfe8cbdbafc4c1 100644
--- a/Options/s/RO310
+++ b/Options/s/RO310
@@ -21,6 +21,7 @@ module_postfix	SETS	" RISC OS 3.1"
 	Option	Stork,			false			; try saving power by calling Portable_Idle
 
 	Option	Medusa,			false			; support Medusa Memory management
+        Option  international_help,     false                   ; Kernel looks up help in the Messages file
 	Option	UseDynamicArea,		false    		; use a dynamic area on medusa for the sprite pool
 	Option	PlotSpritesFromPalette, false			; Use palette entries, not translation table
                                             			; (this means funny paletted sprites plot
@@ -42,6 +43,4 @@ module_postfix	SETS	" RISC OS 3.1"
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
-	ASSERT	International_Help = 0
-
         END
diff --git a/Options/s/RO350 b/Options/s/RO350
index 56d4612641e9467ecf7063c9bc6f8a4a556abd62..a58f47e72915066d9243e3321e492a364e3ac2e4 100644
--- a/Options/s/RO350
+++ b/Options/s/RO350
@@ -20,6 +20,7 @@ module_postfix	SETS	" RISC OS 3.5"
 
 	Option	Stork,			false			; try saving power by calling Portable_Idle
 
+        Option  international_help,     false                   ; Kernel looks up help in the Messages file
 	Option	PlotSpritesFromPalette, false			; Use palette entries, not translation table
                                             			; (this means funny paletted sprites plot
                                             			; better in 16bpp+ modes)
@@ -39,6 +40,4 @@ module_postfix	SETS	" RISC OS 3.5"
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
-	ASSERT	International_Help = 0
-
         END
diff --git a/Options/s/RO360 b/Options/s/RO360
index a40c62678ff588851c6101659be9a1abe0b96291..455bbcb31a152ad139d349488e3e5b279ab85732 100644
--- a/Options/s/RO360
+++ b/Options/s/RO360
@@ -34,6 +34,4 @@ module_postfix	SETS	" RISC OS 3.6"
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
-	ASSERT	International_Help <> 0
-
         END
diff --git a/Options/s/RO370 b/Options/s/RO370
index c45ae2d3fa1ce65103b19f7c893cb16c095e0e7c..1c7b331a1da5abb7c62887a275987c560a8d179f 100644
--- a/Options/s/RO370
+++ b/Options/s/RO370
@@ -31,6 +31,4 @@ module_postfix	SETS	" RISC OS 3.7"
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
- 	ASSERT	International_Help <> 0
-
         END
diff --git a/Options/s/Ursula b/Options/s/Ursula
index 23d138e92a9695d8dc7a0012e783e29eba8a45b5..8c85f6e856060b7b0db0cc9fda0509b1ba1e9290 100644
--- a/Options/s/Ursula
+++ b/Options/s/Ursula
@@ -36,8 +36,6 @@
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
-        ASSERT  International_Help <> 0
-
 DefaultNextSlot SETA 1024*1024
 
         END
diff --git a/Options/s/Ursula_RPC b/Options/s/Ursula_RPC
index 5bc91f9a0559b4c5811d5745913c79df8ce6d8cc..5320be96c062dfc94fdbdc84f4b74d5405c73918 100644
--- a/Options/s/Ursula_RPC
+++ b/Options/s/Ursula_RPC
@@ -16,7 +16,7 @@
 ; Wimp options for an Ursula_RiscPC build of the Window Manager
 ;
 
-module_postfix  SETS     " Ursula (Risc PC)"
+module_postfix	SETS	" RISC OS 4.0"
 
         Option  ServiceCallTable,       true                    ; Add Ursula kernel Service Call table
         Option  ChocolateScreen,        true                    ; Clean cached screen after redraw loops
@@ -41,6 +41,4 @@ module_postfix  SETS     " Ursula (Risc PC)"
 
         Option  RO4,                    true                    ; RISC OS 4 extensions
 
-        ASSERT  International_Help <> 0
-
         END
diff --git a/VersionASM b/VersionASM
index 8c635c436004f20f477c2f7d4d9ce0e377ee839d..e0127ebb9d10c3d329b052c1fde1515d05659e22 100644
--- a/VersionASM
+++ b/VersionASM
@@ -11,13 +11,13 @@
                         GBLS    Module_HelpVersion
                         GBLS    Module_ComponentName
                         GBLS    Module_ComponentPath
-Module_MajorVersion     SETS    "5.21"
-Module_Version          SETA    521
+Module_MajorVersion     SETS    "5.22"
+Module_Version          SETA    522
 Module_MinorVersion     SETS    ""
-Module_Date             SETS    "31 Mar 2013"
-Module_ApplicationDate  SETS    "31-Mar-13"
+Module_Date             SETS    "10 Apr 2013"
+Module_ApplicationDate  SETS    "10-Apr-13"
 Module_ComponentName    SETS    "Wimp"
 Module_ComponentPath    SETS    "castle/RiscOS/Sources/Desktop/Wimp"
-Module_FullVersion      SETS    "5.21"
-Module_HelpVersion      SETS    "5.21 (31 Mar 2013)"
+Module_FullVersion      SETS    "5.22"
+Module_HelpVersion      SETS    "5.22 (10 Apr 2013)"
                         END
diff --git a/VersionNum b/VersionNum
index b8860bfe2cefef88889a6ccbaf94bd43d72c5a43..bd7bac2c2113fafdd437ec8d768319c0ed05eb13 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,23 +1,23 @@
-/* (5.21)
+/* (5.22)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  * Last processed by srccommit version: 1.1.
  *
  */
-#define Module_MajorVersion_CMHG        5.21
+#define Module_MajorVersion_CMHG        5.22
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                31 Mar 2013
+#define Module_Date_CMHG                10 Apr 2013
 
-#define Module_MajorVersion             "5.21"
-#define Module_Version                  521
+#define Module_MajorVersion             "5.22"
+#define Module_Version                  522
 #define Module_MinorVersion             ""
-#define Module_Date                     "31 Mar 2013"
+#define Module_Date                     "10 Apr 2013"
 
-#define Module_ApplicationDate          "31-Mar-13"
+#define Module_ApplicationDate          "10-Apr-13"
 
 #define Module_ComponentName            "Wimp"
 #define Module_ComponentPath            "castle/RiscOS/Sources/Desktop/Wimp"
 
-#define Module_FullVersion              "5.21"
-#define Module_HelpVersion              "5.21 (31 Mar 2013)"
-#define Module_LibraryVersionInfo       "5:21"
+#define Module_FullVersion              "5.22"
+#define Module_HelpVersion              "5.22 (10 Apr 2013)"
+#define Module_LibraryVersionInfo       "5:22"
diff --git a/s/NewSWIs b/s/NewSWIs
index baa935d04b08ea5662529197ca2e36017faa098c..a2d2f4cc8d2b7ad11bc7b8fefeed507a9ea433f8 100644
--- a/s/NewSWIs
+++ b/s/NewSWIs
@@ -274,7 +274,6 @@ textop_getsplitpoint
         SWI     XFont_ScanString
         ADD     sp,sp,#20
 
-        ASSERT  UTF8
         MOV     r2,sp
         MOV     r3,#0
         MOV     r6,#bignum
@@ -284,7 +283,11 @@ textop_getsplitpoint
         TEQ     r14,#26                 ; font change?
         ADDEQ   r2,r2,#2
         BEQ     %BT01                   ; skip it if so
+      [ UTF8
         BL      skipcharR
+      |
+        ADD     r2,r2,#1
+      ]
         CMP     r2,r1
         ADDLS   r3,r3,#1
         BLO     %BT02
@@ -294,7 +297,12 @@ textop_getsplitpoint
         ADD     sp,sp,#8                ; junk original r2,r3
         CMP     r3,#0
         BEQ     %FT12
-11      BL      skipcharR
+11
+      [ UTF8
+        BL      skipcharR
+      |
+        ADD     r2,r2,#1
+      ]
         SUBS    r3,r3,#1
         BNE     %BT11
 12      MOV     r0,r2
@@ -401,6 +409,7 @@ textop_truncate
 
 measure_ellipsis ; called from FindFont, sets things up for textop_truncate
         Entry   "r0-r5"
+      [ UTF8
         BL      read_current_alphabet
         LDREQ   r0,=&A680E2             ; lookup not appropriate for UTF-8 - use &E2 &80 &A6
         BEQ     %FT05
@@ -423,7 +432,9 @@ measure_ellipsis ; called from FindFont, sets things up for textop_truncate
         TEQ     r3,#0
         LDREQ   r0,=&2E2E2E             ; use "..." if not in alphabet
         RSBNE   r0,r3,#&100             ; else use appropriate character
-
+      |
+        LDR     r0,=&2E2E2E
+      ]
 05      STR     r0,ellipsis
 
       [ outlinefont
diff --git a/s/Wimp01 b/s/Wimp01
index 5e0fa054a54d7812d66aa8eafb765fce1fc45469..2dfe987324baedca591014ccee69f985b8671b03 100644
--- a/s/Wimp01
+++ b/s/Wimp01
@@ -2000,7 +2000,7 @@ MySWIBase       *       Module_SWISystemBase + WimpSWI * Module_SWIChunkSize
         DCD     Wimp_SWIdecode - Module_BaseAddr
         DCD     Wimp_SWInames  - Module_BaseAddr
         DCD     0
- [ International_Help <> 0
+ [ international_help
         DCD     messfsp        - Module_BaseAddr
  |
         DCD     0
@@ -2021,7 +2021,7 @@ Helpstr =       "Window Manager",9,"$Module_HelpVersion"
 	=	module_postfix
         =       0
 
-        [ International_Help=0
+ [ international_help
 
 IconSprites_Help        DCB     "*IconSprites loads a sprite file into the "
                         DCB     "Wimp's common sprite pool",cr
@@ -2213,7 +2213,7 @@ WimpVisualFlags_Syntax		DCB "Syntax: *WimpVisualFlags <options>",0
 	]
                         ALIGN
 
-       |
+ |
 IconSprites_Help        DCB     "HWNMICS",0
 IconSprites_Syntax      DCB     "SWNMICS",0
 
@@ -2326,7 +2326,7 @@ WimpVisualFlags_Syntax		DCB "SWNMVF",0
 	]
                         ALIGN
 
-       ]
+ ]
 
 Flags
         [ No32bitCode
@@ -2381,9 +2381,9 @@ Helptable
         [ ClickSubmenus
         Command WimpClickSubmenu,1,1,Status_Keyword_Flag:OR:International_Help,WimpClickSubmenuC
         ]
-	[ ThreeDPatch
-	Command WimpVisualFlags,255,0,International_Help
-	]
+        [ ThreeDPatch
+        Command WimpVisualFlags,255,0,International_Help
+        ]
         DCB     0
         ALIGN
 
@@ -3333,14 +3333,14 @@ gotwork
         SWI     XOS_ReadSysInfo
         MOVVS   R2,#0
         CMP     R2,#0
-        LDRVS   R2,=Legacy_IRQsema
+        LDREQ   R2,=Legacy_IRQsema
         STR     R0,ptr_IRQsema
         MOV     R0,#6
         MOV     R2,#OSRSI6_DomainId
         SWI     XOS_ReadSysInfo
         MOVVS   R2,#0
         CMP     R2,#0
-        LDRVS   R2,=Legacy_DomainId
+        LDREQ   R2,=Legacy_DomainId
         STR     R2,ptr_DomainId
 
         MOV     R1, #0
diff --git a/s/Wimp08 b/s/Wimp08
index 624627ec6fa3b9d622877082c1d7b85a886f1bff..c7a23ac4840d1524e9a87cf2386453aeea882610 100644
--- a/s/Wimp08
+++ b/s/Wimp08
@@ -486,7 +486,7 @@ sendmemmessage
         Push    "R0-R6"
         MOVEQ   R0,#User_Message        ; don't bother getting reply
         MOVEQ   R1,sp
-        MOVeQ   R2,#0                   ; broadcast
+        MOVEQ   R2,#0                   ; broadcast
         BLEQ    int_sendmessage         ; fills in sender, myref
         ADD     sp,sp,#28