diff --git a/src/plugins/quickopen/filesystemfilter.cpp b/src/plugins/quickopen/filesystemfilter.cpp
index 55abc390fb23f4deb149e6024f6055b2bdb365f8..387148091b3763e903e0f8c31005515773a3627c 100644
--- a/src/plugins/quickopen/filesystemfilter.cpp
+++ b/src/plugins/quickopen/filesystemfilter.cpp
@@ -94,8 +94,8 @@ void FileSystemFilter::accept(FilterEntry selection) const
 {
     QFileInfo info(selection.internalData.toString());
     if (info.isDir()) {
-        m_toolWindow->show(shortcutString()+" "
-                              +QDir::toNativeSeparators(info.absoluteFilePath()+"/"));
+        QString value = shortcutString() + " " + QDir::toNativeSeparators(info.absoluteFilePath()+"/");
+        m_toolWindow->show(value, value.length());
         return;
     }
     m_editorManager->openEditor(selection.internalData.toString());
diff --git a/src/plugins/quickopen/quickopentoolwindow.cpp b/src/plugins/quickopen/quickopentoolwindow.cpp
index 86d46769dfff802b8559c4e8c360898eb3842366..9a79f6dd2437efc362e68c9b776e5e971a181b89 100644
--- a/src/plugins/quickopen/quickopentoolwindow.cpp
+++ b/src/plugins/quickopen/quickopentoolwindow.cpp
@@ -345,8 +345,6 @@ bool QuickOpenToolWindow::eventFilter(QObject *obj, QEvent *event)
     } else if (obj == m_fileLineEdit && event->type() == QEvent::FocusOut) {
         m_completionList->hide();
     } else if (obj == m_fileLineEdit && event->type() == QEvent::FocusIn) {
-        if (static_cast<QFocusEvent*>(event)->reason() != Qt::MouseFocusReason)
-            m_fileLineEdit->selectAll();
         showPopup();
     } else if (obj == this && event->type() == QEvent::ShortcutOverride) {
         QKeyEvent *ke = static_cast<QKeyEvent *>(event);
@@ -445,10 +443,13 @@ void QuickOpenToolWindow::show(const QString &text, int selectionStart, int sele
     else
         showPopup();
 
-    if (selectionStart >= 0)
+    if (selectionStart >= 0) {
         m_fileLineEdit->setSelection(selectionStart, selectionLength);
-    else
+        if (selectionLength == 0) // make sure the cursor is at the right position (Mac-vs.-rest difference)
+            m_fileLineEdit->setCursorPosition(selectionStart);
+    } else {
         m_fileLineEdit->selectAll();
+    }
 }
 
 void QuickOpenToolWindow::filterSelected()