Index: /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp	(revision 53303)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp	(revision 53304)
@@ -503,5 +503,11 @@
     AssertReturn(pState->pD3D9, VERR_INTERNAL_ERROR);
 #else
-    hr = Direct3DCreate9Ex(D3D_SDK_VERSION, &pState->pD3D9);
+    /* Direct3DCreate9Ex was introduced in Vista, so resolve it dynamically. */
+    typedef HRESULT (WINAPI *PFNDIRECT3DCREATE9EX)(UINT, IDirect3D9Ex **);
+    PFNDIRECT3DCREATE9EX pfnDirect3dCreate9Ex = (PFNDIRECT3DCREATE9EX)RTLdrGetSystemSymbol("d3d9.dll", "Direct3DCreate9Ex");
+    if (!pfnDirect3dCreate9Ex)
+        return PDMDevHlpVMSetError(pThis->CTX_SUFF(pDevIns), VERR_SYMBOL_NOT_FOUND, RT_SRC_POS,
+                                   "vmsvga3d: Unable to locate Direct3DCreate9Ex. This feature requires Vista and later.");
+    hr = pfnDirect3dCreate9Ex(D3D_SDK_VERSION, &pState->pD3D9);
     AssertReturn(hr == D3D_OK, VERR_INTERNAL_ERROR);
 #endif
Index: /trunk/src/VBox/Devices/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/Makefile.kmk	(revision 53303)
+++ /trunk/src/VBox/Devices/Makefile.kmk	(revision 53304)
@@ -244,5 +244,6 @@
   ifeq ($(KBUILD_TARGET),win) # (Disable this to work with OpenGL on Windows.)
    VBoxDD_SOURCES       += Graphics/DevVGA-SVGA3d-win.cpp
-   VBoxDD_LIBS.win      += d3d9.lib
+   VBoxDD_LIBS.win      += d3d9.lib $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
+   VBoxDD_LDFLAGS.win   += /DELAYLOAD:d3d9.dll
   else
    VBoxDD_SOURCES       += Graphics/DevVGA-SVGA3d-ogl.cpp
