diff --git a/VersionASM b/VersionASM
index 7a671894c9e878ff8787dff9a7849a4f761d8282..575eb181ede091661e9c0d82298e600ceaa92b51 100644
--- a/VersionASM
+++ b/VersionASM
@@ -11,14 +11,14 @@
                         GBLS    Module_HelpVersion
                         GBLS    Module_ComponentName
                         GBLS    Module_ComponentPath
-Module_MajorVersion     SETS    "5.42"
-Module_Version          SETA    542
+Module_MajorVersion     SETS    "5.43"
+Module_Version          SETA    543
 Module_MinorVersion     SETS    ""
-Module_Date             SETS    "10 Apr 2001"
-Module_ApplicationDate2 SETS    "10-Apr-01"
-Module_ApplicationDate4 SETS    "10-Apr-2001"
+Module_Date             SETS    "25 May 2001"
+Module_ApplicationDate2 SETS    "25-May-01"
+Module_ApplicationDate4 SETS    "25-May-2001"
 Module_ComponentName    SETS    "Kernel"
 Module_ComponentPath    SETS    "RiscOS/Sources/Kernel"
-Module_FullVersion      SETS    "5.42"
-Module_HelpVersion      SETS    "5.42 (10 Apr 2001)"
+Module_FullVersion      SETS    "5.43"
+Module_HelpVersion      SETS    "5.43 (25 May 2001)"
                         END
diff --git a/VersionNum b/VersionNum
index f941f7577c1111b4eb916b2f77aac0c9e4ba6d7f..f903c29839d2f25bf850256c471fb772962153a7 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,22 +1,22 @@
-/* (5.42)
+/* (5.43)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  *
  */
-#define Module_MajorVersion_CMHG        5.42
+#define Module_MajorVersion_CMHG        5.43
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                10 Apr 2001
+#define Module_Date_CMHG                25 May 2001
 
-#define Module_MajorVersion             "5.42"
-#define Module_Version                  542
+#define Module_MajorVersion             "5.43"
+#define Module_Version                  543
 #define Module_MinorVersion             ""
-#define Module_Date                     "10 Apr 2001"
+#define Module_Date                     "25 May 2001"
 
-#define Module_ApplicationDate2         "10-Apr-01"
-#define Module_ApplicationDate4         "10-Apr-2001"
+#define Module_ApplicationDate2         "25-May-01"
+#define Module_ApplicationDate4         "25-May-2001"
 
 #define Module_ComponentName            "Kernel"
 #define Module_ComponentPath            "RiscOS/Sources/Kernel"
 
-#define Module_FullVersion              "5.42"
-#define Module_HelpVersion              "5.42 (10 Apr 2001)"
+#define Module_FullVersion              "5.43"
+#define Module_HelpVersion              "5.43 (25 May 2001)"
diff --git a/s/Middle b/s/Middle
index 6ac1d201d86d7485c5a013ab16053de639a70e80..13c6ddd909048ad81906c91d3d9c357872ac53c3 100644
--- a/s/Middle
+++ b/s/Middle
@@ -1691,25 +1691,29 @@ MachineAddressNVRAMError
         ExitSWIHandler
 
 osri6_table
-    DCD  CamEntriesPointer        ;0
-    DCD  MaxCamEntry              ;1
-    DCD  PageFlags_Unavailable    ;2
-    DCD  PhysRamTable             ;3
-    DCD  ARMA_Cleaner_flipflop    ;4
-    DCD  TickNodeChain            ;5
-    DCD  ROMModuleChain           ;6
-    DCD  DAList                   ;7
-    DCD  AppSpaceDANode           ;8
-    DCD  Module_List              ;9
-    DCD  ModuleSHT_Entries        ;10
-    DCD  ModuleSWI_HashTab        ;11
-    DCD  IOSystemType             ;12
-    DCD  L1PT                     ;13
-    DCD  L2PT                     ;14
-    DCD  UNDSTK                   ;15
-    DCD  SVCSTK                   ;16
-    DCD  SysHeapStart             ;17
-osri6_maxvalue * 17
+    DCD  CamEntriesPointer                            ;0
+    DCD  MaxCamEntry                                  ;1
+    DCD  PageFlags_Unavailable                        ;2
+    DCD  PhysRamTable                                 ;3
+    DCD  ARMA_Cleaner_flipflop                        ;4
+    DCD  TickNodeChain                                ;5
+    DCD  ROMModuleChain                               ;6
+    DCD  DAList                                       ;7
+    DCD  AppSpaceDANode                               ;8
+    DCD  Module_List                                  ;9
+    DCD  ModuleSHT_Entries                            ;10
+    DCD  ModuleSWI_HashTab                            ;11
+    DCD  IOSystemType                                 ;12
+    DCD  L1PT                                         ;13
+    DCD  L2PT                                         ;14
+    DCD  UNDSTK                                       ;15
+    DCD  SVCSTK                                       ;16
+    DCD  SysHeapStart                                 ;17
+    DCD  JTABLE-SWIRelocation                         ;18 - relocated base of OS SWI despatch table
+    DCD  DefaultIRQ1V+(Devices-DefaultIRQ1Vcode)      ;19 - relocated base of IRQ device head nodes
+    DCD  DefaultIRQ1V+(DeviceTables-DefaultIRQ1Vcode) ;20 - relocated end of IRQ device head nodes
+    DCD  IRQSTK                                       ;21 - top of the IRQ stack
+osri6_maxvalue * (.-4-osri6_table) :SHR: 2
 
 
 ; OS_ReadSysInfo 7  - read 32-bit Abort information for last unexpected abort
diff --git a/s/NewIRQs b/s/NewIRQs
index 12bb2c01ba71e5212b9782b5064c5354ad29f03c..94a3c7ab8df411393047e83a3636cabc06ed36e7 100644
--- a/s/NewIRQs
+++ b/s/NewIRQs
@@ -1060,12 +1060,13 @@ NOIRQ ROUT
  MOV r10, #VIDC
  STR r14, [r10]
  ]
-01      SUBS    r0, r0, #3
-        ADDGE   r12, r12, #1
-        BGT     %BT01                   ; r12 := r0 DIV 3
+        ADD     R12, R0, R0, LSL #3      ; r12 := 9*R0
+        ADD     R12, R12, R0, LSL #1     ; r12 := 11*R0
+        MOV     R12, R12, LSR #5         ; r12 := r0/3
 
         CMP     R12, #8
         MOVLO   R0, #IOCIRQMSKA
+        MOVHS   R0, #0
         BLO     %FT03
 
         CMP     R12, #16