Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 27378)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 27379)
@@ -277,11 +277,8 @@
 public:
 
-    UIMachineViewBlocker(QObject *pWatchedObject)
+    UIMachineViewBlocker()
         : QEventLoop(0)
         , m_iTimerId(0)
     {
-        /* Install object event watcher: */
-        pWatchedObject->installEventFilter(this);
-
         /* Also start timer to unlock pool in case of
          * required condition doesn't happens by some reason: */
@@ -296,23 +293,4 @@
 
 protected:
-
-    bool eventFilter(QObject *pWatched, QEvent *pEvent)
-    {
-        switch (pEvent->type())
-        {
-            case VBoxDefs::ResizeEventType:
-            {
-                /* Its a specific part related to fullscreen/seamless modes.
-                 * Here we are waiting for guest resize event to be sure what
-                 * non-normal modes successfully restored previous guest size hint.
-                 * And we just unlocking the 'this' blocker afterwards: */
-                exit();
-                return false;
-            }
-            default:
-                break;
-        }
-        return QEventLoop::eventFilter(pWatched, pEvent);
-    }
 
     void timerEvent(QTimerEvent *pEvent)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp	(revision 27378)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.cpp	(revision 27379)
@@ -56,4 +56,5 @@
     , m_bIsGuestAutoresizeEnabled(pMachineWindow->machineLogic()->actionsPool()->action(UIActionIndex_Toggle_GuestAutoresize)->isChecked())
     , m_fShouldWeDoResize(false)
+    , m_pSyncBlocker(0)
 {
     /* Load machine view settings: */
@@ -71,4 +72,7 @@
     /* Prepare console connections: */
     prepareConsoleConnections();
+
+    /* Prepare fullscreen: */
+    prepareFullscreen();
 
     /* Initialization: */
@@ -162,4 +166,12 @@
                     pEvent->ignore();
             }
+        }
+
+        case VBoxDefs::ResizeEventType:
+        {
+            bool fResult = UIMachineView::event(pEvent);
+            if (m_pSyncBlocker && m_pSyncBlocker->isRunning())
+                m_pSyncBlocker->quit();
+            return fResult;
         }
         default:
@@ -238,4 +250,10 @@
 }
 
+void UIMachineViewFullscreen::prepareFullscreen()
+{
+    /* Create sync-blocker: */
+    m_pSyncBlocker = new UIMachineViewBlocker;
+}
+
 void UIMachineViewFullscreen::cleanupFullscreen()
 {
@@ -246,8 +264,11 @@
         if (m_bIsGuestAutoresizeEnabled && uisession()->isGuestSupportsGraphics())
         {
-            /* Rollback fullscreen frame-buffer size to normal: */
-            UIMachineViewBlocker blocker(this);
+            /* Rollback seamless frame-buffer size to normal: */
+            machineWindowWrapper()->machineWindow()->hide();
             sltPerformGuestResize(guestSizeHint());
-            blocker.exec();
+            m_pSyncBlocker->exec();
+
+            /* Request to delete sync-blocker: */
+            m_pSyncBlocker->deleteLater();
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.h	(revision 27378)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineViewFullscreen.h	(revision 27379)
@@ -64,5 +64,5 @@
     void prepareConnections();
     void prepareConsoleConnections();
-    //void prepareFullscreen() {}
+    void prepareFullscreen();
 
     /* Cleanup routines: */
@@ -82,7 +82,8 @@
     void maybeRestrictMinimumSize();
 
-    /* Private members: */
+    /* Private variables: */
     bool m_bIsGuestAutoresizeEnabled : 1;
     bool m_fShouldWeDoResize : 1;
+    UIMachineViewBlocker *m_pSyncBlocker;
 
     /* Friend classes: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp	(revision 27378)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.cpp	(revision 27379)
@@ -54,4 +54,5 @@
                     , uMonitor)
     , m_fShouldWeDoResize(false)
+    , m_pSyncBlocker(0)
 {
     /* Load machine view settings: */
@@ -176,4 +177,13 @@
                     pEvent->ignore();
             }
+        }
+
+        case VBoxDefs::ResizeEventType:
+        {
+            bool fResult = UIMachineView::event(pEvent);
+            if (m_pSyncBlocker && m_pSyncBlocker->isRunning())
+                m_pSyncBlocker->quit();
+            return fResult;
+            break;
         }
         default:
@@ -256,4 +266,6 @@
     /* Set seamless feature flag to the guest: */
     session().GetConsole().GetDisplay().SetSeamlessMode(true);
+    /* Create sync-blocker: */
+    m_pSyncBlocker = new UIMachineViewBlocker;
 }
 
@@ -267,7 +279,10 @@
 
         /* Rollback seamless frame-buffer size to normal: */
-        UIMachineViewBlocker blocker(this);
+        machineWindowWrapper()->machineWindow()->hide();
         sltPerformGuestResize(guestSizeHint());
-        blocker.exec();
+        m_pSyncBlocker->exec();
+
+        /* Delete sync-blocker: */
+        m_pSyncBlocker->deleteLater();
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.h	(revision 27378)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineViewSeamless.h	(revision 27379)
@@ -83,4 +83,5 @@
     bool m_fShouldWeDoResize : 1;
     QRegion m_lastVisibleRegion;
+    UIMachineViewBlocker *m_pSyncBlocker;
 
     /* Friend classes: */
