Index: /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 27476)
+++ /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 27477)
@@ -2468,8 +2468,13 @@
         if (cbLimit && uOffset + cb + 1 > cbLimit)
             return vmdkError(pImage, VERR_BUFFER_OVERFLOW, RT_SRC_POS, N_("VMDK: descriptor too long in '%s'"), pImage->pszFilename);
-        rc = vmdkFileWriteAt(pDescFile, uOffset, psz, cb, NULL);
-        if (RT_FAILURE(rc))
-            return vmdkError(pImage, rc, RT_SRC_POS, N_("VMDK: error writing descriptor in '%s'"), pImage->pszFilename);
-        uOffset += cb;
+
+        if (cb > 0)
+        {
+            rc = vmdkFileWriteAt(pDescFile, uOffset, psz, cb, NULL);
+            if (RT_FAILURE(rc))
+                return vmdkError(pImage, rc, RT_SRC_POS, N_("VMDK: error writing descriptor in '%s'"), pImage->pszFilename);
+            uOffset += cb;
+        }
+
         rc = vmdkFileWriteAt(pDescFile, uOffset, "\n", 1, NULL);
         if (RT_FAILURE(rc))
