diff --git a/Version b/Version
index 5a12cd679ee456dca3a7e5ed030a68d60b9b4c30..a1b30b0acd60d2b06bd48232c2607d99719f4eb8 100644
--- a/Version
+++ b/Version
@@ -14,9 +14,9 @@ Version SETA    Module_Version
 VString SETS    Module_MajorVersion
 Date    SETS    Module_Date      ; version for STB/NC OS
         |
-Version SETA    515
-VString SETS    "5.15"
-Date    SETS    "24 Apr 2009"    ; version for RISC OS on desktop computers
+Version SETA    516
+VString SETS    "5.16"
+Date    SETS    "18 Jan 2010"    ; version for RISC OS on desktop computers
 
                                  ; you may also wish to update the welcome
                                  ; and OS information dialogue box templates
diff --git a/VersionASM b/VersionASM
index c4980d45be4b9e236e9ee58469f4279ee3ab7c34..56a59f692d78b3969a3c4de66d10ac823af32684 100644
--- a/VersionASM
+++ b/VersionASM
@@ -13,11 +13,11 @@
                         GBLS    Module_ComponentPath
 Module_MajorVersion     SETS    "5.35"
 Module_Version          SETA    535
-Module_MinorVersion     SETS    "4.79.2.106"
-Module_Date             SETS    "06 Nov 2009"
-Module_ApplicationDate  SETS    "06-Nov-09"
+Module_MinorVersion     SETS    "4.79.2.107"
+Module_Date             SETS    "18 Jan 2010"
+Module_ApplicationDate  SETS    "18-Jan-10"
 Module_ComponentName    SETS    "Kernel"
 Module_ComponentPath    SETS    "castle/RiscOS/Sources/Kernel"
-Module_FullVersion      SETS    "5.35 (4.79.2.106)"
-Module_HelpVersion      SETS    "5.35 (06 Nov 2009) 4.79.2.106"
+Module_FullVersion      SETS    "5.35 (4.79.2.107)"
+Module_HelpVersion      SETS    "5.35 (18 Jan 2010) 4.79.2.107"
                         END
diff --git a/VersionNum b/VersionNum
index d09414d8bfa14cc734cf7cf3bbdae31b8eab7373..8bc23f0a9cbce0f0de8a3fa72339c46581f015ef 100644
--- a/VersionNum
+++ b/VersionNum
@@ -5,19 +5,19 @@
  *
  */
 #define Module_MajorVersion_CMHG        5.35
-#define Module_MinorVersion_CMHG        4.79.2.106
-#define Module_Date_CMHG                06 Nov 2009
+#define Module_MinorVersion_CMHG        4.79.2.107
+#define Module_Date_CMHG                18 Jan 2010
 
 #define Module_MajorVersion             "5.35"
 #define Module_Version                  535
-#define Module_MinorVersion             "4.79.2.106"
-#define Module_Date                     "06 Nov 2009"
+#define Module_MinorVersion             "4.79.2.107"
+#define Module_Date                     "18 Jan 2010"
 
-#define Module_ApplicationDate          "06-Nov-09"
+#define Module_ApplicationDate          "18-Jan-10"
 
 #define Module_ComponentName            "Kernel"
 #define Module_ComponentPath            "castle/RiscOS/Sources/Kernel"
 
-#define Module_FullVersion              "5.35 (4.79.2.106)"
-#define Module_HelpVersion              "5.35 (06 Nov 2009) 4.79.2.106"
+#define Module_FullVersion              "5.35 (4.79.2.107)"
+#define Module_HelpVersion              "5.35 (18 Jan 2010) 4.79.2.107"
 #define Module_LibraryVersionInfo       "5:35"
diff --git a/s/PMF/osword b/s/PMF/osword
index 92e513ed40fbc6c9afe5c2979368202158e72fab..e4407cba6d82163a43e4502ffc15a7fb1572b126 100644
--- a/s/PMF/osword
+++ b/s/PMF/osword
@@ -695,27 +695,32 @@ CheckYear ROUT
         TEQ     R0, #RTCAddressPHI
         MOVEQ   R1, #5
         MOVNE   R1, #6                  ; year address (dependant on RTC)
-	SUB	R13, R13, #4
-	STRB	R1, [R13]
-	MOV	R1, R13
-	ORR	R0, R0, #1:SHL:29
-	MOV	R2, #1
+        STRB    R1, [R13, #-4]!
+        MOV     R1, R13
+        ORR     R0, R0, #1:SHL:29
+        MOV     R2, #1
         BL      IIC_Op
-        ORR	R0, R0, #1
-        BL	IIC_Op
-        AND	R1, R0, #&FF
-        LDRB	R0, [R13]
-        ADD	R13, R13, #4
+        ORR     R0, R0, #1
+        BL      IIC_Op
+        AND     R1, R0, #&FF
+        LDRB    R0, [R13], #4
 
         TEQ     R1, #RTCAddressPHI+1
-        MOVEQ   R1, R0, LSR #6
-        ANDNE   R1, R0, #3              ; R1= year MOD 4
+        MOVEQ   R0, R0, LSR #6          ; R1= year MOD 4
+        BLNE    BCDToHex
+        MOV     R2, R0                  ; remember RTC value
         MOV     R0, #YearCMOS
         BL      Read
-        AND     R2, R0, #3
-        SUBS    R2, R1, R2              ; same year ?
+
+        TEQ     R1, #RTCAddressPHI+1
+        ANDEQ   R1, R0, #3
+        MOVNE   R1, R0
+        MOVEQ   R14,#4
+        MOVNE   R14,#100
+
+        SUBS    R2, R2, R1              ; same year ?
         Pull    "R0,R1,R2,PC", EQ       ; [yes, so no bother]
-        ADDCC   R2, R2, #4              ; if lower, then must be carry
+        ADDCC   R2, R2, R14             ; if lower, then must be carry
         ADD     R2, R0, R2              ; new year value
         CMP     R2, #100
         BCC     %FT10                   ; no carry thru to next century