Index: /trunk/src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9/device.c
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9/device.c	(revision 46660)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Wine_new/d3d9/device.c	(revision 46661)
@@ -288,4 +288,5 @@
     unsigned i;
     LONG refs = device->refcount;
+    LONG wined3d_refs;
     device->in_destruction = TRUE;
 
@@ -311,5 +312,5 @@
     wined3d_device_release_focus_window(device->wined3d_device);
 # endif
-    wined3d_device_decref(device->wined3d_device);
+    wined3d_refs = wined3d_device_decref(device->wined3d_device);
     wined3d_mutex_unlock();
 
@@ -318,5 +319,5 @@
     HeapFree(GetProcessHeap(), 0, device);
 
-    return refs - 1;
+    return wined3d_refs;
 }
 #endif
@@ -3912,4 +3913,5 @@
 {
     struct d3d9_device *device = impl_from_IDirect3DDevice9Ex(iface);
+    struct wined3d_device *wined3d_device = device->wined3d_device;
     LONG wined3d_refs;
     if (device->refcount != 1)
@@ -3921,5 +3923,5 @@
     {
         ERR("unexpected wined3dRefs %d, destroying in anyway", wined3d_refs);
-        while (wined3d_device_decref(device->wined3d_device)) {}
+        while (wined3d_device_decref(wined3d_device)) {}
     }
     return D3D_OK;
