Index: /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 32891)
+++ /trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp	(revision 32892)
@@ -2730,6 +2730,7 @@
     if (RT_SUCCESS(rc))
     {
-        rc = vmdkFileWriteSync(pImage, pDescFile, uOffset, pszDescriptor, cbLimit ? cbLimit : offDescriptor, NULL);
-        if (RT_FAILURE(rc))
+        rc = vmdkFileWriteMetaAsync(pImage, pDescFile, uOffset, pszDescriptor, cbLimit ? cbLimit : offDescriptor, pIoCtx, NULL, NULL);
+        if (   RT_FAILURE(rc)
+            && rc != VERR_VD_ASYNC_IO_IN_PROGRESS)
             rc = vmdkError(pImage, rc, RT_SRC_POS, N_("VMDK: error writing descriptor in '%s'"), pImage->pszFilename);
     }
@@ -4873,6 +4874,7 @@
     if (pImage->Descriptor.fDirty)
     {
-        rc = vmdkWriteDescriptor(pImage);
-        if (RT_FAILURE(rc))
+        rc = vmdkWriteDescriptorAsync(pImage, pIoCtx);
+        if (   RT_FAILURE(rc)
+            && rc != VERR_VD_ASYNC_IO_IN_PROGRESS)
             goto out;
     }
