Index: /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 27524)
+++ /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 27525)
@@ -5637,9 +5637,17 @@
         if (!(pImage->uOpenFlags & VD_OPEN_FLAGS_READONLY))
         {
-            pImage->ModificationUuid = *pUuid;
-            rc = vmdkDescDDBSetUuid(pImage, &pImage->Descriptor,
-                                    VMDK_DDB_MODIFICATION_UUID, pUuid);
-            if (RT_FAILURE(rc))
-                return vmdkError(pImage, rc, RT_SRC_POS, N_("VMDK: error storing modification UUID in descriptor in '%s'"), pImage->pszFilename);
+            /*
+             * Only change the modification uuid if it changed.
+             * Avoids a lot of unneccessary 1-byte writes during
+             * vmdkFlush.
+             */
+            if (RTUuidCompare(&pImage->ModificationUuid, pUuid))
+            {
+                pImage->ModificationUuid = *pUuid;
+                rc = vmdkDescDDBSetUuid(pImage, &pImage->Descriptor,
+                                        VMDK_DDB_MODIFICATION_UUID, pUuid);
+                if (RT_FAILURE(rc))
+                    return vmdkError(pImage, rc, RT_SRC_POS, N_("VMDK: error storing modification UUID in descriptor in '%s'"), pImage->pszFilename);
+            }
             rc = VINF_SUCCESS;
         }
