Index: /trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c	(revision 24027)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c	(revision 24028)
@@ -675,4 +675,9 @@
                 	uint32_t surfSizeY = pBody->SurfInfo.sizeY;
                     pDesc->hHostHandle = pBody->SurfInfo.hSurf;
+                    if(!!(lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
+                    		&& !!(lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_VISIBLE))
+                    {
+                    	pDesc->bVisible = true;
+                    }
                     lpSurfaceGlobal->dwReserved1 = (ULONG_PTR)pDesc;
                     lPitch = pBody->SurfInfo.pitch;
@@ -1183,11 +1188,8 @@
         if(lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_VISIBLE
                 || (
-                        !(lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_COMPLEX)
-                        && (
-                                lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE
-                                || (
-                                        (lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
-                                        && !pDesc->bHidden
-                                    )
+                        lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE
+                        || (
+                                !!(lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
+                                && pDesc->bVisible
                            )
                    )
@@ -1724,5 +1726,5 @@
     DISPDBG((0, "%s\n", __FUNCTION__));
 
-    if(pSrcDesc->bHidden)
+    if(!pSrcDesc->bVisible)
     {
         lpSetOverlayPosition->ddRVal = DDERR_GENERIC;
@@ -1765,5 +1767,5 @@
     DISPDBG((0, "%s\n", __FUNCTION__));
 
-//    if(pSrcDesc->bHidden)
+//    if(!pSrcDesc->bVisible)
 //    {
 //        lpUpdateOverlay->ddRVal = DDERR_GENERIC;
@@ -1791,9 +1793,9 @@
         if(lpUpdateOverlay->dwFlags & DDOVER_HIDE)
         {
-            pSrcDesc->bHidden = true;
+            pSrcDesc->bVisible = false;
         }
         else if(lpUpdateOverlay->dwFlags & DDOVER_SHOW)
         {
-            pSrcDesc->bHidden = false;
+            pSrcDesc->bVisible = true;
             if(pSrcDesc->UpdatedMemRegion.bValid)
             {
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h	(revision 24027)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h	(revision 24028)
@@ -116,5 +116,5 @@
 #endif
 //    uint32_t cBitsPerPixel;
-    bool bHidden;
+    bool bVisible;
     VBOXVHWAREGION UpdatedMemRegion;
     VBOXVHWAREGION NonupdatedMemRegion;
