Index: /trunk/include/lolevel.h
===================================================================
--- /trunk/include/lolevel.h	(revision 1252)
+++ /trunk/include/lolevel.h	(revision 1253)
@@ -59,5 +59,9 @@
 extern long _GetParameterData(long id, void *buf, long size);
 extern long _SetParameterData(long id, void *buf, long size);
+#ifdef  CAM_DRYOS_2_3_R47
+extern void _MakeSDCardBootable(int driveno);
+#else
 extern void _UpdateMBROnFlash(int driveno, long offset, char *str);
+#endif
 
 /* standart C library */
Index: /trunk/include/camera.h
===================================================================
--- /trunk/include/camera.h	(revision 1252)
+++ /trunk/include/camera.h	(revision 1253)
@@ -22,4 +22,6 @@
 #undef  CAM_DRYOS                               // Camera is DryOS-based
 #undef  CAM_PROPSET                             // Camera's properties group (the generation)
+#undef  CAM_DRYOS_2_3_R39                       // Define for cameras with DryOS release R39 or greater
+#undef  CAM_DRYOS_2_3_R47                       // Define for cameras with DryOS release R47 or greater
 
 #undef  CAM_SWIVEL_SCREEN                       // Camera has rotated LCD screen
Index: /trunk/platform/generic/wrappers.c
===================================================================
--- /trunk/platform/generic/wrappers.c	(revision 1252)
+++ /trunk/platform/generic/wrappers.c	(revision 1253)
@@ -145,5 +145,13 @@
 void mark_filesystem_bootable()
 {
+#ifdef  CAM_DRYOS_2_3_R47
+    // DryOS release 47 (2011) no longer has the UpdateMBROnFlash function to write the master boot record on
+    // the SD card. Instead it has seperate functions for writing the 'BOOTDISK' and 'SCRIPT' signatures to
+    // the MBR. The firmware function also takes care of writing the bootdisk signature to the correct location
+    // for FAT32 formatted cards.
+    _MakeSDCardBootable(0);
+#else
     _UpdateMBROnFlash(0, 0x40, "BOOTDISK");
+#endif
 }
 
