diff --git a/VersionNum b/VersionNum
index d89cb1131e6b80f457011e09ee4f274b12682830..6fe1e2635a5ee19c9e6c6831ccbe3c12322636c4 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,23 +1,23 @@
-/* (0.95)
+/* (0.96)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  * Last processed by srccommit version: 1.1.
  *
  */
-#define Module_MajorVersion_CMHG        0.95
+#define Module_MajorVersion_CMHG        0.96
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                08 Mar 2014
+#define Module_Date_CMHG                14 Apr 2014
 
-#define Module_MajorVersion             "0.95"
-#define Module_Version                  95
+#define Module_MajorVersion             "0.96"
+#define Module_Version                  96
 #define Module_MinorVersion             ""
-#define Module_Date                     "08 Mar 2014"
+#define Module_Date                     "14 Apr 2014"
 
-#define Module_ApplicationDate          "08-Mar-14"
+#define Module_ApplicationDate          "14-Apr-14"
 
 #define Module_ComponentName            "OMAP3"
 #define Module_ComponentPath            "castle/RiscOS/Sources/HAL/OMAP3"
 
-#define Module_FullVersion              "0.95"
-#define Module_HelpVersion              "0.95 (08 Mar 2014)"
-#define Module_LibraryVersionInfo       "0:95"
+#define Module_FullVersion              "0.96"
+#define Module_HelpVersion              "0.96 (14 Apr 2014)"
+#define Module_LibraryVersionInfo       "0:96"
diff --git a/s/I2C b/s/I2C
index b8c5561e30583791c5f388cb3a6895ea7c820fa6..f9b6286511eb7a9ee67e8f904acc880c2584cacd 100644
--- a/s/I2C
+++ b/s/I2C
@@ -176,34 +176,16 @@ HAL_IICType
 
 ; HAL_IICDevice
 ; in:
-;       r0 = irq_descriptor ptr
-;       r1 = bus number
+;       r0 = bus number
 ; out:
-;       r0 filled in
-; typedef struct irq_descriptor
-; {
-;     int device;
-;     union {
-;        struct {
-;          unsigned char *addr;
-;          int maskandpolarity;
-;        } bit;
-;        struct {
-;          int (*forme)(void *handle);
-;          void *handle;
-;        } func;
-;     } sub;
-; } irq_descriptor;
-;
+;       r0 = device number
+
 HAL_IICDevice
         LDRB    a3, [sb, #BoardConfig_NumI2C]
-        CMP     a2, a3
-        MOVHS   a2, #-1
+        CMP     a1, a3
+        MOVHS   a1, #-1
         ADDLO   a3, sb, #BoardConfig_HALI2CIRQ
-        LDRLOB  a2, [a3, a2]
-        MOV     a3, #0
-        MOV     a4, #0
-        STMIA   a1, {a2-a4}
+        LDRLOB  a1, [a3, a1]
         MOV     pc, lr
 
 ; HAL_IICTransfer