Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.cpp	(revision 68327)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.cpp	(revision 68328)
@@ -166,4 +166,9 @@
     AssertPtrReturn(m_pComboBox, 0);
     return m_pComboBox->lineEdit();
+}
+
+QComboBox *QIComboBox::comboBox() const
+{
+    return m_pComboBox;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.h	(revision 68327)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIComboBox.h	(revision 68328)
@@ -113,4 +113,9 @@
     void setItemText(int iIndex, const QString &strText) const;
 
+protected:
+
+    /** Returns the embedded combo-box reference. */
+    QComboBox *comboBox() const;
+
 private:
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp	(revision 68327)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp	(revision 68328)
@@ -126,9 +126,13 @@
     {
         QIComboBox::setEditable(true);
+
+        /* Install combo-box event-filter: */
+        Assert(comboBox());
+        comboBox()->installEventFilter(this);
+
+        /* Install line-edit connection/event-filter: */
         Assert(lineEdit());
         connect(lineEdit(), SIGNAL(textEdited(const QString &)),
                 this, SLOT(onTextEdited(const QString &)));
-
-        /* Installing necessary event filters: */
         lineEdit()->installEventFilter(this);
     }
@@ -137,8 +141,13 @@
         if (lineEdit())
         {
-            /* Installing necessary event filters: */
-            lineEdit()->installEventFilter(this);
+            /* Remove line-edit event-filter/connection: */
+            lineEdit()->removeEventFilter(this);
             disconnect(lineEdit(), SIGNAL(textEdited(const QString &)),
                        this, SLOT(onTextEdited(const QString &)));
+        }
+        if (comboBox())
+        {
+            /* Remove combo-box event-filter: */
+            comboBox()->removeEventFilter(this);
         }
         QIComboBox::setEditable(false);
@@ -177,7 +186,24 @@
 bool UIFilePathSelector::eventFilter(QObject *pObject, QEvent *pEvent)
 {
-    if (m_fMouseAwaited && (pEvent->type() == QEvent::MouseButtonPress))
-        QMetaObject::invokeMethod(this, "refreshText", Qt::QueuedConnection);
-
+    /* If the object is private combo-box: */
+    if (pObject == comboBox())
+    {
+        /* Handle focus events related to private child: */
+        switch (pEvent->type())
+        {
+            case QEvent::FocusIn:  focusInEvent(static_cast<QFocusEvent*>(pEvent)); break;
+            case QEvent::FocusOut: focusOutEvent(static_cast<QFocusEvent*>(pEvent)); break;
+            default: break;
+        }
+    }
+
+    /* If the object is private line-edit: */
+    if (pObject == lineEdit())
+    {
+        if (m_fMouseAwaited && (pEvent->type() == QEvent::MouseButtonPress))
+            QMetaObject::invokeMethod(this, "refreshText", Qt::QueuedConnection);
+    }
+
+    /* Call to base-class: */
     return QIWithRetranslateUI<QIComboBox>::eventFilter(pObject, pEvent);
 }
