Index: /trunk/src/VBox/Devices/Storage/DrvVD.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 36002)
+++ /trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 36003)
@@ -191,4 +191,6 @@
     /** Bandwidth group the disk is assigned to. */
     char               *pszBwGroup;
+    /** Flag whether async I/O using the host cache is enabled. */
+    bool                fAsyncIoWithHostCache;
 
     /** I/O interface for a cache image. */
@@ -372,4 +374,6 @@
                     fFlags |= PDMACEP_FILE_FLAGS_DONT_LOCK;
                 }
+                if (pThis->fAsyncIoWithHostCache)
+                    fFlags |= PDMACEP_FILE_FLAGS_HOST_CACHE_ENABLED;
 
                 rc = PDMR3AsyncCompletionEpCreateForFile(&pStorageBackend->pEndpoint,
@@ -2378,4 +2382,14 @@
             pThis->VDITcpNetCallbacks.pfnPoke = drvvdINIPPoke;
 #endif /* VBOX_WITH_INIP */
+        }
+
+        /*
+         * The image has a bandwidth group but the host cache is enabled.
+         * Use the async I/O framework but tell it to enable the host cache.
+         */
+        if (!fUseNewIo && pThis->pszBwGroup)
+        {
+            pThis->fAsyncIoWithHostCache = true;
+            fUseNewIo = true;
         }
 
