diff --git a/lib/prefs.c b/lib/prefs.c
index d0f3710bc618c5798de3368ee5167a5d0eb00c3f..0ce76294bd38990f9b108de0476021f08d16eff1 100644
--- a/lib/prefs.c
+++ b/lib/prefs.c
@@ -99,7 +99,7 @@ static void get_spell_dictionaries(GtkWidget *spell_combo, DictData *dd)
 }
 
 
-static void prefs_dialog_response(GtkWidget *dlg, gint response, DictData *dd)
+void dict_prefs_dialog_response(GtkWidget *dlg, gint response, DictData *dd)
 {
 	gchar *tmp;
 
@@ -172,7 +172,8 @@ GtkWidget *dict_prefs_dialog_show(GtkWidget *parent, DictData *dd)
 
     gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
     gtk_window_set_icon_name(GTK_WINDOW(dialog), "xfce4-settings");
-	g_signal_connect_after(dialog, "response", G_CALLBACK(prefs_dialog_response), dd);
+	if (! dd->is_plugin) /* the response callback is run by the plugin's callback */
+		g_signal_connect(dialog, "response", G_CALLBACK(dict_prefs_dialog_response), dd);
 
 	notebook = gtk_notebook_new();
 	gtk_widget_show(notebook);
diff --git a/lib/prefs.h b/lib/prefs.h
index d2334c3b0d592145d534d39e141241022d1ce893..5b02a20f61f5be021608d5adc548af3ec10403cf 100644
--- a/lib/prefs.h
+++ b/lib/prefs.h
@@ -22,6 +22,7 @@
 #define PREFS_H 1
 
 GtkWidget *dict_prefs_dialog_show(GtkWidget *parent, DictData *dd);
+void dict_prefs_dialog_response(GtkWidget *dlg, gint response, DictData *dd);
 
 
 #endif
diff --git a/panel-plugin/xfce4-dict-plugin.c b/panel-plugin/xfce4-dict-plugin.c
index d5ba280886ecde383dc8ce1182d6be8dc14018d6..dfe1e32cfa212d5e13f884a4381cf7c5d9218eaa 100644
--- a/panel-plugin/xfce4-dict-plugin.c
+++ b/panel-plugin/xfce4-dict-plugin.c
@@ -286,6 +286,9 @@ static void dict_plugin_panel_save_settings(DictPanelData *dpd)
 
 static void dict_plugin_properties_dialog_response(GtkWidget *dlg, gint response, DictPanelData *dpd)
 {
+	/* first run the real response handler which reads the settings from the dialog */
+	dict_prefs_dialog_response(dlg, response, dpd->dd);
+
 	dict_plugin_panel_save_settings(dpd);
 
 	g_object_set_data(G_OBJECT(dpd->plugin), "dialog", NULL);