diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index 0cd62445101dd385c56f0046e51524cf1ac047fa..8de4cad5dc21b0fde740d940c62305f6f0d50fb3 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -39,8 +39,7 @@
 using namespace Designer::Internal;
 
 SettingsPage::SettingsPage(QDesignerOptionsPageInterface *designerPage) :
-    m_designerPage(designerPage),
-    m_applyOnFinish(false)
+    m_designerPage(designerPage)
 {
 }
 
@@ -65,17 +64,15 @@ QString SettingsPage::trCategory() const
 
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
-    m_applyOnFinish = false;
     return m_designerPage->createPage(parent);
 }
 
 void SettingsPage::apply()
 {
-    // FIXME: Since no cleanup should be done here, we can't call finish(true)
-    m_applyOnFinish = true;
+    m_designerPage->apply();
 }
 
 void SettingsPage::finish()
 {
-    m_designerPage->finish(m_applyOnFinish);
+    m_designerPage->finish();
 }
diff --git a/src/plugins/designer/settingspage.h b/src/plugins/designer/settingspage.h
index 1eea480db720392947b0be19e79707ac0e6c46b6..8ad707dd76937a6acd5d37cc7b429f9bfb59e26b 100644
--- a/src/plugins/designer/settingspage.h
+++ b/src/plugins/designer/settingspage.h
@@ -58,13 +58,12 @@ public:
     QString category() const;
     QString trCategory() const;
 
-    QWidget *createPage(QWidget *parent);
-    void apply();
-    void finish();
+    virtual QWidget *createPage(QWidget *parent);
+    virtual void apply();
+    virtual void finish();
 
 private:
     QDesignerOptionsPageInterface *m_designerPage;
-    bool m_applyOnFinish;
 };
 
 } // namespace Internal