diff --git a/VersionASM b/VersionASM
index 0f01dd202f48f8702336f1412ed718f6e7a0f090..e94a37f39026b39b739c644579a1409dfca4a413 100644
--- a/VersionASM
+++ b/VersionASM
@@ -11,13 +11,13 @@
                         GBLS    Module_HelpVersion
                         GBLS    Module_ComponentName
                         GBLS    Module_ComponentPath
-Module_MajorVersion     SETS    "0.87"
-Module_Version          SETA    87
+Module_MajorVersion     SETS    "0.88"
+Module_Version          SETA    88
 Module_MinorVersion     SETS    ""
-Module_Date             SETS    "15 Aug 2013"
-Module_ApplicationDate  SETS    "15-Aug-13"
+Module_Date             SETS    "17 Aug 2013"
+Module_ApplicationDate  SETS    "17-Aug-13"
 Module_ComponentName    SETS    "OMAP3"
 Module_ComponentPath    SETS    "castle/RiscOS/Sources/HAL/OMAP3"
-Module_FullVersion      SETS    "0.87"
-Module_HelpVersion      SETS    "0.87 (15 Aug 2013)"
+Module_FullVersion      SETS    "0.88"
+Module_HelpVersion      SETS    "0.88 (17 Aug 2013)"
                         END
diff --git a/VersionNum b/VersionNum
index 30e3da4736c059dc8548edbd387e7a63ab5f1f49..9d3976cc566735e6dc83f6739376721f41e98976 100644
--- a/VersionNum
+++ b/VersionNum
@@ -1,23 +1,23 @@
-/* (0.87)
+/* (0.88)
  *
  * This file is automatically maintained by srccommit, do not edit manually.
  * Last processed by srccommit version: 1.1.
  *
  */
-#define Module_MajorVersion_CMHG        0.87
+#define Module_MajorVersion_CMHG        0.88
 #define Module_MinorVersion_CMHG        
-#define Module_Date_CMHG                15 Aug 2013
+#define Module_Date_CMHG                17 Aug 2013
 
-#define Module_MajorVersion             "0.87"
-#define Module_Version                  87
+#define Module_MajorVersion             "0.88"
+#define Module_Version                  88
 #define Module_MinorVersion             ""
-#define Module_Date                     "15 Aug 2013"
+#define Module_Date                     "17 Aug 2013"
 
-#define Module_ApplicationDate          "15-Aug-13"
+#define Module_ApplicationDate          "17-Aug-13"
 
 #define Module_ComponentName            "OMAP3"
 #define Module_ComponentPath            "castle/RiscOS/Sources/HAL/OMAP3"
 
-#define Module_FullVersion              "0.87"
-#define Module_HelpVersion              "0.87 (15 Aug 2013)"
-#define Module_LibraryVersionInfo       "0:87"
+#define Module_FullVersion              "0.88"
+#define Module_HelpVersion              "0.88 (17 Aug 2013)"
+#define Module_LibraryVersionInfo       "0:88"
diff --git a/s/Boot b/s/Boot
index 5644b172c7a692a300f4858e568b97ce8df2eacd..90b3ede1d5e00798d1f4a0d9ad94f9b2fe853b11 100644
--- a/s/Boot
+++ b/s/Boot
@@ -155,7 +155,7 @@ HALdescriptor   DATA
         DCD     HAL_Null - HAL_EntryTable
         MEND
 
-        IMPORT   Video_init
+        IMPORT   Video_Init
         IMPORT   Interrupt_Init
         IMPORT   Timer_Init
         IMPORT   PRCM_SetClocks
@@ -176,6 +176,7 @@ HALdescriptor   DATA
         IMPORT   GPIO_InitDevice
         IMPORT   SDIO_InitDevices
         IMPORT   NVMemory_Init
+        IMPORT   NVMemory_InitDevice
         IMPORT   TPS_Init
         IMPORT   PandoraKB_Init
         IMPORT   Enable_main_battery_charging
@@ -595,15 +596,20 @@ Board_Init_IGEPv2
         BL      CPUClk_PreInit ; Go fast!
 
  [ MoreDebug
-        DebugTX "Video_init"
+        DebugTX "Video_Init"
  ]
-        BL      Video_init ; Uses GPTIMER2
+        BL      Video_Init ; Uses GPTIMER2
 
  [ MoreDebug
         DebugTX "USB_Init"
  ]
         BL      USB_Init ; Uses GPTIMER2
 
+ [ MoreDebug
+        DebugTX "NVMemory_Init"
+ ]
+        BL      NVMemory_Init
+
  [ MoreDebug
         DebugTX "Timer_Init"
  ]
@@ -902,7 +908,7 @@ HAL_InitDevices
         DebugTime a1, "HAL_InitDevices @ "
         ; Common HAL devices
         BL      CPUClk_Init
-        BL      NVMemory_Init
+        BL      NVMemory_InitDevice
         BL      RTC_Init
         BL      SDMA_Init
         BL      VideoDevice_Init
diff --git a/s/NVMemory b/s/NVMemory
index 5e0e3ac04b3f726d1f911b2e3af75134b2787651..b6b10d6f1da12149c4fab553eb307105bf9bfd2a 100644
--- a/s/NVMemory
+++ b/s/NVMemory
@@ -25,6 +25,7 @@
         AREA    |Asm$$Code|, CODE, READONLY, PIC
 
         EXPORT  NVMemory_Init
+        EXPORT  NVMemory_InitDevice
         EXPORT  HAL_NVMemoryType
         EXPORT  HAL_NVMemorySize
         EXPORT  HAL_NVMemoryPageSize
@@ -300,11 +301,6 @@ NVMemory_Init
         BNE     %BT45
 50
     ]
-        ; If some was found, create a placeholder HAL device
-        LDR     a1, NVMemoryFound
-        TEQ     a1, #0
-        BLNE    NVMemory_AddDevice
-
         Pull    "v1-v3, pc"
 
 NVMemory_Barrel16
@@ -330,13 +326,16 @@ NVMemory_Barrel16
 
         Pull    "v1-v2, pc"
 
-NVMemory_AddDevice
-        ; void NVMemory_AddDevice(uint32_t bytesize)
-        Push    "a1, lr"
+NVMemory_InitDevice
+        ; void NVMemory_InitDevice(void)
+        LDR     a3, NVMemoryFound
+        TEQ     a3, #0
+        MOVEQ   pc, lr
+        Push    "a3, lr"
 
         ; Copy over template
         ADRL    a1, NVRAMWS
-        ADR     a2, NVMemory_AddDevice_Template
+        ADR     a2, NVMemory_Device_Template
         MOV     a3, #HALDeviceSize
         BL      memcpy
 
@@ -346,12 +345,12 @@ NVMemory_AddDevice
         CLZ     a1, a3
         RSB     a1, a1, #31 - 8
 
-        ADR     a4, NVMemory_AddDevice_IDs
+        ADR     a4, NVMemory_Device_IDs
         MOV     a3, a1, LSL #1
         LDRH    a3, [a4, a3]
         STRH    a3, [a2, #HALDevice_ID]
 
-        ADR     a4, NVMemory_AddDevice_Descs
+        ADR     a4, NVMemory_Device_Descs
         MOV     a3, #1 + :LEN:"24Cxx EEPROM"
         MLA     a3, a3, a1, a4
         STR     a3, [a2, #HALDevice_Description]
@@ -360,7 +359,7 @@ NVMemory_AddDevice
         MOV     a1, #0
         LDR     pc, OSentries + 4*OS_AddDevice
 
-NVMemory_AddDevice_Template
+NVMemory_Device_Template
         DCW     HALDeviceType_SysPeri + HALDeviceSysPeri_NVRAM
         DCW     &1234           ; ID filled at runtime
         DCD     HALDeviceBus_Ser + HALDeviceSerBus_IIC
@@ -368,29 +367,29 @@ NVMemory_AddDevice_Template
         DCD     &12345678       ; Description filled at runtime
         DCD     0               ; Address - N/A
         %       12              ; Reserved
-        DCD     NVMemory_AddDevice_Activate
-        DCD     NVMemory_AddDevice_Deactivate
-        DCD     NVMemory_AddDevice_Reset
-        DCD     NVMemory_AddDevice_Sleep
+        DCD     NVMemory_Device_Activate
+        DCD     NVMemory_Device_Deactivate
+        DCD     NVMemory_Device_Reset
+        DCD     NVMemory_Device_Sleep
         DCD     -1
         DCD     0
         %       8
-        ASSERT  (. - NVMemory_AddDevice_Template) = HALDeviceSize
+        ASSERT  (. - NVMemory_Device_Template) = HALDeviceSize
 
-NVMemory_AddDevice_Activate
+NVMemory_Device_Activate
         MOV     a1, #1
         MOV     pc, lr
-NVMemory_AddDevice_Sleep
+NVMemory_Device_Sleep
         MOV     a1, #0
-NVMemory_AddDevice_Deactivate
-NVMemory_AddDevice_Reset
+NVMemory_Device_Deactivate
+NVMemory_Device_Reset
         MOV     pc, lr
-NVMemory_AddDevice_IDs
+NVMemory_Device_IDs
         DCW    HALDeviceID_NVRAM_24C02
         DCW    HALDeviceID_NVRAM_24C04
         DCW    HALDeviceID_NVRAM_24C08
         DCW    HALDeviceID_NVRAM_24C16
-NVMemory_AddDevice_Descs
+NVMemory_Device_Descs
         DCB    "24C02 EEPROM", 0
         DCB    "24C04 EEPROM", 0
         DCB    "24C08 EEPROM", 0
diff --git a/s/Video b/s/Video
index bb4d82e382a745dbe94f2ead8e6b62f6ca219b8e..190ac32602e60261218a634fc2d20e45af1bc9f9 100644
--- a/s/Video
+++ b/s/Video
@@ -34,7 +34,6 @@
 
         AREA    |Asm$$Code|, CODE, READONLY, PIC
 
-        EXPORT  Video_init
         EXPORT  HAL_VideoFlybackDevice
         EXPORT  HAL_VideoSetMode
         EXPORT  HAL_VideoWritePaletteEntry
@@ -51,6 +50,7 @@
         EXPORT  HAL_VideoBufferAlignment
         EXPORT  HAL_VideoOutputFormat
 
+        EXPORT  Video_Init
         EXPORT  VideoDevice_Init
         EXPORT  Video_Power_VBC_DVI
         EXPORT  Video_Power_VBC_Pandora
@@ -69,7 +69,7 @@
         LDR     pc, OSentries + 4*$entry
         MEND
 
-Video_init
+Video_Init
         ; Configure GPIO pins so we can turn the DVI framer on/off
         LDRB    a1, [sb, #BoardConfig_VideoGPIO]
         CMP     a1, #255