diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index faf02d941cab3fa0aae4e18ff6981963d2756fdf..f114b6f99dfbc4487892c48635babd7dbe06e028 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -247,6 +247,12 @@ void FilterSettingsPage::apply()
     }
 }
 
+void FilterSettingsPage::finish()
+{
+    disconnect(Core::HelpManager::instance(), SIGNAL(documentationChanged()),
+        this, SLOT(updateFilterPage()));
+}
+
 bool FilterSettingsPage::matches(const QString &s) const
 {
     return m_searchKeywords.contains(s, Qt::CaseInsensitive);
diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h
index 1af5549e318e863a38ec71ad45f48caa03d154ee..0968b1d3dbae4532a69c99351ececa02149bb0c9 100644
--- a/src/plugins/help/filtersettingspage.h
+++ b/src/plugins/help/filtersettingspage.h
@@ -52,7 +52,7 @@ public:
 
     QWidget *createPage(QWidget *parent);
     void apply();
-    void finish() {}
+    void finish();
     virtual bool matches(const QString &s) const;
 
 signals: