Index: /trunk/src/VBox/Storage/testcase/tstVDIo.cpp
===================================================================
--- /trunk/src/VBox/Storage/testcase/tstVDIo.cpp	(revision 40709)
+++ /trunk/src/VBox/Storage/testcase/tstVDIo.cpp	(revision 40710)
@@ -670,5 +670,5 @@
             case 'f':
             {
-                fIgnoreFlush = true;
+                fIgnoreFlush = paScriptArgs[i].u.fFlag;
                 break;
             }
@@ -700,6 +700,6 @@
                                   NULL, fOpenFlags, pGlob->pInterfacesImages, NULL);
             else
-                rc = VDCreateDiff(pDisk->pVD, pcszBackend, pcszImage, fImageFlags, NULL, NULL, NULL, VD_OPEN_FLAGS_ASYNC_IO,
-                                  pGlob->pInterfacesImages, NULL);
+                rc = VDCreateDiff(pDisk->pVD, pcszBackend, pcszImage, fImageFlags, NULL, NULL, NULL,
+                                  fOpenFlags, pGlob->pInterfacesImages, NULL);
         }
         else
@@ -2761,8 +2761,9 @@
     RTSgBufInit(&SgBuf, &Seg, 1);
     rc = VDMemDiskWrite(pIoStorage->pFile->pMemDisk, uOffset, cbBuffer, &SgBuf);
-    if (RT_SUCCESS(rc) && pcbWritten)
+    if (RT_SUCCESS(rc))
     {
         pIoStorage->pFile->cWrites++;
-        *pcbWritten = cbBuffer;
+        if (pcbWritten)
+            *pcbWritten = cbBuffer;
     }
 
@@ -2783,8 +2784,9 @@
     RTSgBufInit(&SgBuf, &Seg, 1);
     rc = VDMemDiskRead(pIoStorage->pFile->pMemDisk, uOffset, cbBuffer, &SgBuf);
-    if (RT_SUCCESS(rc) && pcbRead)
+    if (RT_SUCCESS(rc))
     {
         pIoStorage->pFile->cReads++;
-        *pcbRead = cbBuffer;
+        if (pcbRead)
+            *pcbRead = cbBuffer;
     }
 
