Index: source/common/udata.cpp
===================================================================
--- source/common/udata.cpp	(revision 68397)
+++ source/common/udata.cpp	(working copy)
@@ -610,7 +610,7 @@
  *      our common data.                                                *
  *                                                                      *
  *----------------------------------------------------------------------*/
-extern "C" const DataHeader U_DATA_API U_ICUDATA_ENTRY_POINT;
+extern "C" const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT;
 
 /*
  * This would be a good place for weak-linkage declarations of
@@ -656,7 +656,7 @@
         if(gCommonICUDataArray[commonDataIndex] == NULL) {
             int32_t i;
             for(i = 0; i < commonDataIndex; ++i) {
-                if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT) {
+                if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT.hdr) {
                     /* The linked-in data is already in the list. */
                     return NULL;
                 }
@@ -675,7 +675,7 @@
                 setCommonICUDataPointer(uprv_getICUData_conversion(), FALSE, pErrorCode);
             }
             */
-            setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT, FALSE, pErrorCode);
+            setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT.hdr, FALSE, pErrorCode);
         }
         return gCommonICUDataArray[commonDataIndex];
     }
Index: source/common/ucmndata.h
===================================================================
--- source/common/ucmndata.h	(revision 68397)
+++ source/common/ucmndata.h	(working copy)
@@ -44,6 +44,20 @@
 } DataHeader;
 
 typedef struct {
+    DataHeader hdr;
+    char padding[8];
+    uint32_t count, reserved;
+    /*
+    const struct {
+    const char *const name; 
+    const void *const data;
+    } toc[1];
+    */
+   int   fakeNameAndData[4];       /* TODO:  Change this header type from */
+                                   /*        pointerTOC to OffsetTOC.     */
+} ICU_Data_Header;
+
+typedef struct {
     uint32_t nameOffset;
     uint32_t dataOffset;
 } UDataOffsetTOCEntry;
Index: source/stubdata/stubdata.c
===================================================================
--- source/stubdata/stubdata.c	(revision 68397)
+++ source/stubdata/stubdata.c	(working copy)
@@ -20,45 +20,34 @@
 #include "unicode/utypes.h"
 #include "unicode/udata.h"
 #include "unicode/uversion.h"
+#include "ucmndata.h"
 
 
-typedef struct {
-    uint16_t headerSize;
-    uint8_t magic1, magic2;
-    UDataInfo info;
-    char padding[8];
-    uint32_t count, reserved;
-    /*
-    const struct {
-    const char *const name; 
-    const void *const data;
-    } toc[1];
-    */
-   int   fakeNameAndData[4];       /* TODO:  Change this header type from */
-                                   /*        pointerTOC to OffsetTOC.     */
-} ICU_Data_Header;
-
 U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = {
-    32,          /* headerSize */
-    0xda,        /* magic1,  (see struct MappedData in udata.c)  */
-    0x27,        /* magic2     */
-    {            /*UDataInfo   */
-        sizeof(UDataInfo),      /* size        */
-        0,                      /* reserved    */
+    {            /* DataHeader */
+        {            /* MappedData */
+            32,          /* headerSize */
+            0xda,        /* magic1,  (see struct MappedData in udata.c)  */
+            0x27,        /* magic2     */
+        },
+        {            /*UDataInfo   */
+            sizeof(UDataInfo),      /* size        */
+            0,                      /* reserved    */
 
 #if U_IS_BIG_ENDIAN
-        1,
+            1,
 #else
-        0,
+            0,
 #endif
 
-        U_CHARSET_FAMILY,
-        sizeof(UChar),   
-        0,               /* reserved      */
-        {                /* data format identifier */
-           0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */
-           {1, 0, 0, 0},   /* format version major, minor, milli, micro */
-           {0, 0, 0, 0}    /* dataVersion   */
+            U_CHARSET_FAMILY,
+            sizeof(UChar),   
+            0,               /* reserved      */
+            {                /* data format identifier */
+               0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */
+               {1, 0, 0, 0},   /* format version major, minor, milli, micro */
+               {0, 0, 0, 0}    /* dataVersion   */
+        },
     },
     {0,0,0,0,0,0,0,0},  /* Padding[8]   */ 
     0,                  /* count        */