Index: /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp	(revision 33878)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp	(revision 33879)
@@ -3471,5 +3471,4 @@
     IDirect3DDevice9 * pDevice9If = VBOXDISP_D3DEV(pDevice);
     IDirect3DPixelShader9 *pShader = (IDirect3DPixelShader9*)hShaderHandle;
-    Assert(pShader);
     HRESULT hr = pDevice9If->SetPixelShader(pShader);
     Assert(hr == S_OK);
@@ -6255,5 +6254,4 @@
     IDirect3DDevice9 * pDevice9If = VBOXDISP_D3DEV(pDevice);
     IDirect3DVertexShader9 *pShader = (IDirect3DVertexShader9*)hShaderHandle;
-    Assert(pShader);
     HRESULT hr = pDevice9If->SetVertexShader(pShader);
     Assert(hr == S_OK);
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp	(revision 33878)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp	(revision 33879)
@@ -588,4 +588,28 @@
     return display;
 }
+
+static bool vboxVideoModesMatch(VIDEO_MODE_INFORMATION *pMode1, VIDEO_MODE_INFORMATION *pMode2)
+{
+    return pMode1->VisScreenHeight == pMode2->VisScreenHeight
+            && pMode1->VisScreenWidth == pMode2->VisScreenWidth
+            && pMode1->BitsPerPlane == pMode2->BitsPerPlane;
+}
+
+static DECLINLINE(void) vboxVideoChackModeAdd(VIDEO_MODE_INFORMATION *pModes, int *pcNumModes)
+{
+    const int cNumModes = *pcNumModes;
+    for (int i = 0; i < cNumModes; ++i)
+    {
+        if (vboxVideoModesMatch(&pModes[i], &pModes[cNumModes]))
+            return;
+    }
+    (*pcNumModes)++;
+}
+
+#ifdef VBOX_WITH_WDDM
+# define VBOXVIDEOMODE_ADDED(_aModes, _pcModes) vboxVideoChackModeAdd(_aModes, _pcModes)
+#else
+# define VBOXVIDEOMODE_ADDED(_aModes, _pcModes) do { (*(_pcModes))++; } while (0)
+#endif
 
 static int vboxVideoBuildModesTable(PDEVICE_EXTENSION DeviceExtension, int iDisplay,
@@ -1142,5 +1166,6 @@
             VideoModes[cNumVideoModes].VideoMemoryBitmapHeight      = yres - yOffset;
             VideoModes[cNumVideoModes].DriverSpecificAttributeFlags = 0;
-            ++cNumVideoModes;
+
+            VBOXVIDEOMODE_ADDED(VideoModes, &cNumVideoModes);
 
             /* next run */
@@ -1194,5 +1219,6 @@
             VideoModes[cNumVideoModes] = CustomVideoModes[iDisplay];
             iPreferredVideoMode = cNumVideoModes;
-            ++cNumVideoModes;
+
+            VBOXVIDEOMODE_ADDED(VideoModes, &cNumVideoModes);
         }
 
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVidPn.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVidPn.cpp	(revision 33878)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVidPn.cpp	(revision 33879)
@@ -1257,26 +1257,29 @@
                     break;
                 case D3DKMDT_EPT_NOPIVOT:
-                    /* just create and populate the new source mode set for now */
-                    Status = vboxVidPnCreatePopulateSourceModeSetFromLegacy(pDevExt, hDesiredVidPn, pVidPnInterface,
-                            pNewVidPnPresentPathInfo->VidPnSourceId,
-                            pModes, cModes, iPreferredMode, NULL);
-                    Assert(Status == STATUS_SUCCESS);
-                    if (Status == STATUS_SUCCESS)
+                    Assert(!!pPinnedVidPnSourceModeInfo == !!pPinnedVidPnTargetModeInfo);
+                    if (!pPinnedVidPnSourceModeInfo && !pPinnedVidPnTargetModeInfo)
                     {
-                        /* just create and populate a new target mode info for now */
-                        Status = vboxVidPnCreatePopulateTargetModeSetFromLegacy(pDevExt, hDesiredVidPn, pVidPnInterface,
-                                pNewVidPnPresentPathInfo->VidPnTargetId,
-                                pResolutions,
-                                cResolutions,
-                                pPreferredMode,
-                                0,
-                                NULL);
+                        /* just create and populate the new source mode set for now */
+                        Status = vboxVidPnCreatePopulateSourceModeSetFromLegacy(pDevExt, hDesiredVidPn, pVidPnInterface,
+                                pNewVidPnPresentPathInfo->VidPnSourceId,
+                                pModes, cModes, iPreferredMode, NULL);
                         Assert(Status == STATUS_SUCCESS);
-                        if (Status != STATUS_SUCCESS)
-                            drprintf((__FUNCTION__": vboxVidPnCreatePopulateTargetModeSetFromLegacy failed Status(0x%x)\n", Status));
+                        if (Status == STATUS_SUCCESS)
+                        {
+                            /* just create and populate a new target mode info for now */
+                            Status = vboxVidPnCreatePopulateTargetModeSetFromLegacy(pDevExt, hDesiredVidPn, pVidPnInterface,
+                                    pNewVidPnPresentPathInfo->VidPnTargetId,
+                                    pResolutions,
+                                    cResolutions,
+                                    pPreferredMode,
+                                    0,
+                                    NULL);
+                            Assert(Status == STATUS_SUCCESS);
+                            if (Status != STATUS_SUCCESS)
+                                drprintf((__FUNCTION__": vboxVidPnCreatePopulateTargetModeSetFromLegacy failed Status(0x%x)\n", Status));
+                        }
+                        else
+                            drprintf((__FUNCTION__": vboxVidPnCreatePopulateSourceModeSetFromLegacy failed Status(0x%x)\n", Status));
                     }
-                    else
-                        drprintf((__FUNCTION__": vboxVidPnCreatePopulateSourceModeSetFromLegacy failed Status(0x%x)\n", Status));
-
                     break;
                 default:
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp	(revision 33878)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp	(revision 33879)
@@ -3719,5 +3719,5 @@
     dfprintf(("==> "__FUNCTION__ ", context(0x%x)\n", hAdapter));
 
-    vboxVDbgBreakF();
+    vboxVDbgBreakFv();
 
     PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter;
