diff --git a/src/plugins/find/findplugin.cpp b/src/plugins/find/findplugin.cpp
index ee62bea84bf99848b62c834153d2ba2911aa8396..2a5d10470708990a5ed420e1f15ac6ca211a3ce6 100644
--- a/src/plugins/find/findplugin.cpp
+++ b/src/plugins/find/findplugin.cpp
@@ -105,6 +105,14 @@ void FindPlugin::filterChanged()
     QTC_ASSERT(changedFilter, return);
     QTC_ASSERT(action, return);
     action->setEnabled(changedFilter->isEnabled());
+    bool haveEnabledFilters = false;
+    foreach (IFindFilter *filter, m_filterActions.keys()) {
+        if (filter->isEnabled()) {
+            haveEnabledFilters = true;
+            break;
+        }
+    }
+    m_openFindDialog->setEnabled(haveEnabledFilters);
 }
 
 void FindPlugin::openFindFilter()
@@ -112,8 +120,6 @@ void FindPlugin::openFindFilter()
     QAction *action = qobject_cast<QAction*>(sender());
     QTC_ASSERT(action, return);
     IFindFilter *filter = action->data().value<IFindFilter *>();
-    QTC_ASSERT(filter, return);
-    QTC_ASSERT(filter->isEnabled(), return);
     QString currentFindString = (m_currentDocumentFind->isEnabled() ? m_currentDocumentFind->currentFindString() : "");
     if (!currentFindString.isEmpty())
         m_findDialog->setFindText(currentFindString);
@@ -127,6 +133,7 @@ void FindPlugin::setupMenu()
     Core::ActionContainer *mfind = am->createMenu(Constants::M_FIND);
     medit->addMenu(mfind, Core::Constants::G_EDIT_FIND);
     mfind->menu()->setTitle(tr("&Find/Replace"));
+    mfind->appendGroup(Constants::G_FIND_CURRENTDOCUMENT);
     mfind->appendGroup(Constants::G_FIND_FILTERS);
     mfind->appendGroup(Constants::G_FIND_FLAGS);
     mfind->appendGroup(Constants::G_FIND_ACTIONS);
@@ -141,6 +148,12 @@ void FindPlugin::setupMenu()
     separator->setSeparator(true);
     cmd = am->registerAction(separator, QLatin1String("Find.Sep.Actions"), globalcontext);
     mfind->addAction(cmd, Constants::G_FIND_ACTIONS);
+
+    m_openFindDialog = new QAction(tr("Find Dialog"), this);
+    cmd = am->registerAction(m_openFindDialog, QLatin1String("Find.Dialog"), globalcontext);
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+F")));
+    mfind->addAction(cmd, Constants::G_FIND_FILTERS);
+    connect(m_openFindDialog, SIGNAL(triggered()), this, SLOT(openFindFilter()));
 }
 
 void FindPlugin::setupFilterMenuItems()
@@ -153,9 +166,13 @@ void FindPlugin::setupFilterMenuItems()
 
     Core::ActionContainer *mfind = am->actionContainer(Constants::M_FIND);
     m_filterActions.clear();
+    bool haveEnabledFilters = false;
     foreach (IFindFilter *filter, findInterfaces) {
-        QAction *action = new QAction(filter->name(), this);
-        action->setEnabled(filter->isEnabled());
+        QAction *action = new QAction(QString("    %1").arg(filter->name()), this);
+        bool isEnabled = filter->isEnabled();
+        if (isEnabled)
+            haveEnabledFilters = true;
+        action->setEnabled(isEnabled);
         action->setData(qVariantFromValue(filter));
         cmd = am->registerAction(action, QLatin1String("FindFilter.")+filter->name(), globalcontext);
         cmd->setDefaultKeySequence(filter->defaultShortcut());
@@ -165,6 +182,8 @@ void FindPlugin::setupFilterMenuItems()
         connect(filter, SIGNAL(changed()), this, SLOT(filterChanged()));
     }
     m_findDialog->setFindFilters(findInterfaces);
+    m_openFindDialog->setEnabled(haveEnabledFilters);
+
 }
 
 QTextDocument::FindFlags FindPlugin::findFlags() const
diff --git a/src/plugins/find/findplugin.h b/src/plugins/find/findplugin.h
index 53bd805aaa2d5a8f05a2cf2054d48a5e727bbbb7..a4c2ce283823902d6e22495d5ebbdd9a975f1661 100644
--- a/src/plugins/find/findplugin.h
+++ b/src/plugins/find/findplugin.h
@@ -97,6 +97,7 @@ private:
     QStringListModel *m_replaceCompletionModel;
     QStringList m_findCompletions;
     QStringList m_replaceCompletions;
+    QAction *m_openFindDialog;
 };
 
 } // namespace Internal
diff --git a/src/plugins/find/findtoolbar.cpp b/src/plugins/find/findtoolbar.cpp
index 2c2295740d01bfd0be4a0a445b0d4a938ad21edd..97f66d5d27565b3d6af0cbabec5b8df8f8ab2a11 100644
--- a/src/plugins/find/findtoolbar.cpp
+++ b/src/plugins/find/findtoolbar.cpp
@@ -149,7 +149,7 @@ FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumen
     m_findInDocumentAction = new QAction(tr("Current Document"), this);
     cmd = am->registerAction(m_findInDocumentAction, Constants::FIND_IN_DOCUMENT, globalcontext);
     cmd->setDefaultKeySequence(QKeySequence::Find);
-    mfind->addAction(cmd, Constants::G_FIND_FILTERS);
+    mfind->addAction(cmd, Constants::G_FIND_CURRENTDOCUMENT);
     connect(m_findInDocumentAction, SIGNAL(triggered()), this, SLOT(openFind()));
 
     if (QApplication::clipboard()->supportsFindBuffer()) {
diff --git a/src/plugins/find/textfindconstants.h b/src/plugins/find/textfindconstants.h
index 40394dfb857c37c5288974819bd32a771a376f59..a430c9989767a57c9437f6bb446b79e670f90d51 100644
--- a/src/plugins/find/textfindconstants.h
+++ b/src/plugins/find/textfindconstants.h
@@ -34,6 +34,7 @@ namespace Find {
 namespace Constants {
 
 const char * const M_FIND            = "Find.FindMenu";
+const char * const G_FIND_CURRENTDOCUMENT = "Find.FindMenu.CurrentDocument";
 const char * const G_FIND_FILTERS    = "Find.FindMenu.Filters";
 const char * const G_FIND_FLAGS      = "Find.FindMenu.Flags";
 const char * const G_FIND_ACTIONS    = "Find.FindMenu.Actions";
diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp
index af0a962ec34c54ddd3daa5b8fa51920ae133f6cc..c6448c2f801ae33d924d958e48d9d0d92424dfc3 100644
--- a/src/plugins/projectexplorer/allprojectsfind.cpp
+++ b/src/plugins/projectexplorer/allprojectsfind.cpp
@@ -65,7 +65,7 @@ bool AllProjectsFind::isEnabled() const
 
 QKeySequence AllProjectsFind::defaultShortcut() const
 {
-    return QKeySequence("Ctrl+Shift+F");
+    return QKeySequence();
 }
 
 QStringList AllProjectsFind::files()
diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp
index 123efdbb82409039088a320ce20903ee628cb1f4..4fcfc68642e5f5f27717c98aa242730f86143430 100644
--- a/src/plugins/projectexplorer/currentprojectfind.cpp
+++ b/src/plugins/projectexplorer/currentprojectfind.cpp
@@ -64,7 +64,7 @@ bool CurrentProjectFind::isEnabled() const
 
 QKeySequence CurrentProjectFind::defaultShortcut() const
 {
-    return QKeySequence("Ctrl+Alt+F");
+    return QKeySequence();
 }
 
 QStringList CurrentProjectFind::files()