diff --git a/mcs-plugin/xfwm4_plugin.c b/mcs-plugin/xfwm4_plugin.c
index 5e34e8cff7981c8ed9b7f28a04edf40b9f13e6da..f82654e6dc059397c744f0c6c887e7fac3227ec6 100644
--- a/mcs-plugin/xfwm4_plugin.c
+++ b/mcs-plugin/xfwm4_plugin.c
@@ -263,6 +263,25 @@ static TitleRadioButton title_radio_buttons[END];
 GList *decoration_theme_list = NULL;
 GList *keybinding_theme_list = NULL;
 
+#if (GLIB_MAJOR_VERSION < 2) || ((GLIB_MAJOR_VERSION >= 2) && (GLIB_MINOR_VERSION < 1))
+gboolean g_str_has_suffix (const gchar  *str, const gchar  *suffix)
+{
+    int str_len;
+    int suffix_len;
+
+    g_return_val_if_fail (str != NULL, FALSE);
+    g_return_val_if_fail (suffix != NULL, FALSE);
+
+    str_len = strlen (str);
+    suffix_len = strlen (suffix);
+
+    if (str_len < suffix_len)
+	return FALSE;
+
+    return strcmp (str + str_len - suffix_len, suffix) == 0;
+}
+#endif
+
 static GdkPixbuf *default_icon_at_size(int width, int height)
 {
 
diff --git a/src/settings.c b/src/settings.c
index 41becbe14f467d6a2edea4bb52eb3e8443b111c0..9a11ddbd9edf3a3ca4abe43fa1118a02e2a495c5 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -70,7 +70,6 @@ MyPixmap buttons[BUTTON_COUNT][3];
 MyPixmap title[5][2];
 
 static McsClient *client = NULL;
-static gboolean loading = FALSE;
 static Settings rc[] = {
     {"active_text_color", NULL, FALSE},
     {"inactive_text_color", NULL, FALSE},
@@ -240,19 +239,19 @@ static void notify_cb(const char *name, const char *channel_name, McsAction acti
                 }
                 else if(!strcmp(name, "Xfwm/KeyThemeName"))
                 {
-                    reloadSettings(!loading);
+                    reloadSettings(TRUE);
                 }
                 else if(!strcmp(name, "Xfwm/ThemeName"))
                 {
-                    reloadSettings(!loading);
+                    reloadSettings(TRUE);
                 }
                 else if(!strcmp(name, "Xfwm/ButtonLayout"))
                 {
-                    reloadSettings(!loading);
+                    reloadSettings(TRUE);
                 }
                 if(!strcmp(name, "Xfwm/TitleAlign"))
                 {
-                    reloadSettings(!loading);
+                    reloadSettings(TRUE);
                 }
             }
             break;
@@ -784,9 +783,7 @@ gboolean initSettings(void)
     {
         if(mcs_manager_is_running())
         {
-            loading = TRUE;
             mcs_client_add_channel(client, CHANNEL);
-            loading = FALSE;
         }
         else
         {