diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp
index 0289b71e57136b2e8e6fe7f7c070923dfbecd59f..05f236b5dd93e7ecf6ec68c91eddf81784a39594 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -52,6 +52,25 @@ static const char SETTINGSKEYEXPANDRESULTS[] = "ExpandResults";
 
 namespace Find {
 
+    class WideEnoughLineEdit : public QLineEdit {
+        Q_OBJECT
+    public:
+        WideEnoughLineEdit(QWidget *parent):QLineEdit(parent){
+            connect(this, SIGNAL(textChanged(QString)),
+                    this, SLOT(updateGeometry()));
+        }
+        ~WideEnoughLineEdit(){}
+        QSize sizeHint() const {
+            QSize sh = QLineEdit::minimumSizeHint();
+            sh.rwidth() += qMax(25 * fontMetrics().width(QLatin1Char('x')),
+                                fontMetrics().width(text()));
+            return sh;
+        }
+    public slots:
+        void updateGeometry() { QLineEdit::updateGeometry(); }
+    };
+
+
 struct SearchResultWindowPrivate {
     SearchResultWindowPrivate();
 
@@ -97,7 +116,7 @@ SearchResultWindow::SearchResultWindow() : d(new SearchResultWindowPrivate)
 
     d->m_replaceLabel = new QLabel(tr("Replace with:"), d->m_widget);
     d->m_replaceLabel->setContentsMargins(12, 0, 5, 0);
-    d->m_replaceTextEdit = new QLineEdit(d->m_widget);
+    d->m_replaceTextEdit = new WideEnoughLineEdit(d->m_widget);
     d->m_replaceButton = new QToolButton(d->m_widget);
     d->m_replaceButton->setToolTip(tr("Replace all occurrences"));
     d->m_replaceButton->setText(tr("Replace"));
@@ -371,3 +390,5 @@ bool SearchResultWindow::canNavigate()
 
 } // namespace Find
 
+
+#include "searchresultwindow.moc"