--- git.temp.orig/src/plugins/generic/antievil/antievil.cpp
+++ git.temp/src/plugins/generic/antievil/antievil.cpp
@@ -42,7 +42,7 @@ public:
         return "0.1";
     }
 
-    virtual QWidget* options() const
+    virtual QWidget* options()
     {
         return 0;
     }
@@ -92,6 +92,13 @@ public:
         return blocked;
     }
 
+    virtual bool incomingStanza(int account, QDomElement& stanza)
+    {
+        Q_UNUSED(account)
+        Q_UNUSED(stanza)
+        return false;
+    }
+
 
     //-- StanzaSender ----------------------------------------
 
@@ -100,6 +107,9 @@ public:
         stanzaSender = host;
     }
 
+    virtual void applyOptions() {};
+    virtual void restoreOptions() {};
+
 
 private:
     StanzaSendingHost* stanzaSender;
--- git.temp.orig/src/plugins/generic/consoledump/consoledumpplugin.cpp
+++ git.temp/src/plugins/generic/consoledump/consoledumpplugin.cpp
@@ -39,9 +39,11 @@ public:
     virtual QString name() const;
     virtual QString shortName() const;
     virtual QString version() const;
-    virtual QWidget* options() const;
+    virtual QWidget* options();
     virtual bool enable();
     virtual bool disable();
+    virtual void applyOptions() {};
+    virtual void restoreOptions() {};
 
     virtual bool processEvent(int account, const QDomElement& e);
     virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject) ;
@@ -72,7 +74,7 @@ QString ConsoleDumpPlugin::version() con
     return "0.1";
 }
 
-QWidget* ConsoleDumpPlugin::options() const
+QWidget* ConsoleDumpPlugin::options()
 {
     return 0;
 }
--- git.temp.orig/src/plugins/generic/echo/echoplugin.cpp
+++ git.temp/src/plugins/generic/echo/echoplugin.cpp
@@ -44,12 +44,12 @@ public:
     virtual QString name() const;
     virtual QString shortName() const;
     virtual QString version() const;
-    virtual QWidget* options() const;
+    virtual QWidget* options();
     virtual bool enable();
     virtual bool disable();
 
     // EventFilter
-    virtual bool processEvent(int account, const QDomElement& e);
+    virtual bool processEvent(int account, const QDomElement& e);
     virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
 
     // StanzaSender
@@ -59,7 +59,8 @@ public:
     virtual void setOptionAccessingHost(OptionAccessingHost* host);
     virtual void optionChanged(const QString& option);
 
-
+    virtual void applyOptions();
+    virtual void restoreOptions();
 
 private:
     bool enabled;
@@ -91,7 +92,7 @@ QString EchoPlugin::version() const
     return "0.1";
 }
 
-QWidget* EchoPlugin::options() const
+QWidget* EchoPlugin::options()
 {
     return 0;
 }
@@ -160,6 +161,4 @@ void EchoPlugin::optionChanged(const QSt
 {
     Q_UNUSED(option);
 }
-
-
 #include "echoplugin.moc"
--- git.temp.orig/src/plugins/generic/noughtsandcrosses/noughtsandcrossesplugin.cpp
+++ git.temp/src/plugins/generic/noughtsandcrosses/noughtsandcrossesplugin.cpp
@@ -44,7 +44,7 @@ public:
     virtual QString name() const;
     virtual QString shortName() const;
     virtual QString version() const;
-    virtual QWidget* options() const;
+    virtual QWidget* options();
     virtual bool enable();
     virtual bool disable();
 
@@ -52,6 +52,8 @@ public:
 
     virtual bool processEvent(int account, const QDomElement& e);
     virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
+    virtual void applyOptions() {};
+    virtual void restoreOptions() {};
 
 private slots:
     void stopGame();
@@ -95,7 +97,7 @@ QString NoughtsAndCrossesPlugin::version
     return "0.1";
 }
 
-QWidget* NoughtsAndCrossesPlugin::options() const
+QWidget* NoughtsAndCrossesPlugin::options()
 {
     return 0;
 }
--- git.temp.orig/src/plugins/generic/null/nullplugin.cpp
+++ git.temp/src/plugins/generic/null/nullplugin.cpp
@@ -34,9 +34,11 @@ public:
     virtual QString name() const;
     virtual QString shortName() const;
     virtual QString version() const;
-    virtual QWidget* options() const;
+    virtual QWidget* options();
     virtual bool enable();
     virtual bool disable();
+    virtual void applyOptions() {};
+    virtual void restoreOptions() {};
 };
 
 Q_EXPORT_PLUGIN(NullPlugin);
@@ -56,7 +58,7 @@ QString NullPlugin::version() const
     return "0.1";
 }
 
-QWidget* NullPlugin::options() const
+QWidget* NullPlugin::options()
 {
     return 0;
 }
--- git.temp.orig/src/plugins/generic/urlwatcher/urlwatcherplugin.cpp
+++ git.temp/src/plugins/generic/urlwatcher/urlwatcherplugin.cpp
@@ -44,12 +44,14 @@ public:
     virtual QString name() const;
     virtual QString shortName() const;
     virtual QString version() const;
-    virtual QWidget* options() const;
+    virtual QWidget* options();
     virtual bool enable();
     virtual bool disable();
 
     virtual bool processEvent(int account, const QDomElement& e);
     virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject) ;
+    virtual void applyOptions() {};
+    virtual void restoreOptions() {};
 
 private:
     bool enabled_;
@@ -107,7 +109,7 @@ QString URLWatcherPlugin::version() cons
     return "0.2";
 }
 
-QWidget* URLWatcherPlugin::options() const
+QWidget* URLWatcherPlugin::options()
 {
     return 0;
 }
