diff --git a/src/plugins/find/finddialog.ui b/src/plugins/find/finddialog.ui
index 4a57a70787f9822c8906a9b2d97994bd12f0819e..d77ad32132ac9108b5e8c6eea6d4c5e25a6fcce6 100644
--- a/src/plugins/find/finddialog.ui
+++ b/src/plugins/find/finddialog.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>673</width>
-    <height>210</height>
+    <height>240</height>
    </rect>
   </property>
   <property name="maximumSize">
@@ -17,28 +17,53 @@
    </size>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QLabel" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>80</width>
-       <height>0</height>
-      </size>
-     </property>
+   <property name="sizeConstraint">
+    <enum>QLayout::SetFixedSize</enum>
+   </property>
+   <item row="4" column="0" colspan="2">
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="searchButton">
+       <property name="text">
+        <string>&amp;Search</string>
+       </property>
+       <property name="default">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="replaceButton">
+       <property name="text">
+        <string>Search &amp;&amp; &amp;Replace</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="label_2">
      <property name="text">
-      <string>Sco&amp;pe:</string>
+      <string>Sear&amp;ch for:</string>
      </property>
      <property name="alignment">
       <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
      </property>
      <property name="buddy">
-      <cstring>filterList</cstring>
+      <cstring>searchTerm</cstring>
      </property>
     </widget>
    </item>
@@ -77,22 +102,6 @@
      </layout>
     </widget>
    </item>
-   <item row="1" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Sear&amp;ch for:</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-     </property>
-     <property name="buddy">
-      <cstring>searchTerm</cstring>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="QLineEdit" name="searchTerm"/>
-   </item>
    <item row="2" column="1">
     <widget class="QWidget" name="widget" native="true">
      <layout class="QHBoxLayout" name="horizontalLayout">
@@ -136,6 +145,34 @@
      </layout>
     </widget>
    </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="label">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>80</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>Sco&amp;pe:</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="buddy">
+      <cstring>filterList</cstring>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="searchTerm"/>
+   </item>
    <item row="3" column="0" colspan="2">
     <widget class="QWidget" name="configWidget" native="true">
      <property name="sizePolicy">
@@ -146,53 +183,6 @@
      </property>
     </widget>
    </item>
-   <item row="4" column="0" colspan="2">
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <spacer name="horizontalSpacer_3">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="searchButton">
-       <property name="text">
-        <string>&amp;Search</string>
-       </property>
-       <property name="default">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="replaceButton">
-       <property name="text">
-        <string>Search &amp;&amp; &amp;Replace</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="5" column="1">
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
   </layout>
  </widget>
  <tabstops>
diff --git a/src/plugins/find/findtoolwindow.cpp b/src/plugins/find/findtoolwindow.cpp
index f2c284a1652eaa675dadfb1846e82f7d21ef8378..1aecc9f975117c9ee5b16e1e4f709bf52742e894 100644
--- a/src/plugins/find/findtoolwindow.cpp
+++ b/src/plugins/find/findtoolwindow.cpp
@@ -40,6 +40,7 @@
 #include <QtGui/QStringListModel>
 #include <QtGui/QCompleter>
 #include <QtGui/QKeyEvent>
+#include <QtGui/QScrollArea>
 
 using namespace Find;
 using namespace Find::Internal;
@@ -186,6 +187,19 @@ void FindToolWindow::setCurrentFilter(int index)
                 configWidget->setParent(0);
         }
     }
+    QWidget *w = m_ui.configWidget;
+    while (w) {
+        QScrollArea *sa = qobject_cast<QScrollArea *>(w);
+        if (sa) {
+            sa->updateGeometry();
+            break;
+        }
+        w = w->parentWidget();
+    }
+    for (w = m_configWidget ? m_configWidget : m_ui.configWidget; w; w = w->parentWidget()) {
+        if (w->layout())
+            w->layout()->activate();
+    }
 }
 
 void FindToolWindow::acceptAndGetParameters(QString *term, IFindFilter **filter)
diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp
index aed3329cfccc267be383727f06f3ab8cf66adcd8..37ddce4371d74f81f67a29434d5fbcfb08609453 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -58,7 +58,28 @@ namespace Find {
 
 namespace Internal {
 
-    class SearchResultWindowPrivate : public QObject {
+    class InternalScrollArea : public QScrollArea
+    {
+        Q_OBJECT
+    public:
+        explicit InternalScrollArea(QWidget *parent)
+            : QScrollArea(parent)
+        {
+            setFrameStyle(QFrame::NoFrame);
+            setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+            setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+        }
+
+        QSize sizeHint() const
+        {
+            if (widget())
+                return widget()->size();
+            return QScrollArea::sizeHint();
+        }
+    };
+
+    class SearchResultWindowPrivate : public QObject
+    {
         Q_OBJECT
     public:
         SearchResultWindowPrivate(SearchResultWindow *window);
@@ -210,8 +231,7 @@ SearchResultWindow::SearchResultWindow(QWidget *newSearchPanel)
     d->m_widget = new QStackedWidget;
     d->m_widget->setWindowTitle(displayName());
 
-    QScrollArea *newSearchArea = new QScrollArea(d->m_widget);
-    newSearchArea->setFrameStyle(QFrame::NoFrame);
+    InternalScrollArea *newSearchArea = new InternalScrollArea(d->m_widget);
     newSearchArea->setWidget(newSearchPanel);
     newSearchArea->setFocusProxy(newSearchPanel);
     d->m_widget->addWidget(newSearchArea);