--- apps/settings.c	(revision 289)
+++ apps/settings.c	(revision 290)
@@ -74,6 +74,7 @@
 #ifdef HAVE_LCD_COLOR
 #include "backdrop.h"
 #endif
+#include "scrobbler.h"
 
 #ifdef CONFIG_TUNER
 #include "radio.h"
@@ -1254,6 +1255,10 @@ void settings_apply(void)
     lcd_set_sleep_after_backlight_off(global_settings.lcd_sleep_after_backlight_off);
 #endif
 #endif /* CONFIG_BACKLIGHT */
+
+#if CONFIG_CODEC == SWCODEC
+    scrobbler_set_enabled(global_settings.audioscrobbler);
+#endif
 }
 
 
--- apps/scrobbler.c	(revision 289)
+++ apps/scrobbler.c	(revision 290)
@@ -63,12 +63,18 @@ int cache_pos;
 struct mp3entry scrobbler_entry;
 bool pending = false;
 bool scrobbler_initialised = false;
+bool scrobbler_enabled = false;
 #ifdef CONFIG_RTC
 time_t timestamp;
 #else
 unsigned long timestamp;
 #endif
 
+void scrobbler_set_enabled(bool enabled)
+{
+    scrobbler_enabled = enabled;
+}
+
 void write_cache(void)
 {
     int i;
@@ -173,7 +179,7 @@ void scrobbler_change_event(struct mp3en
 
 int scrobbler_init(void)
 {
-    if(!global_settings.audioscrobbler)
+    if(!scrobbler_enabled)
         return -1;
 
     scrobbler_cache = buffer_alloc(SCROBBLER_MAX_CACHE*SCROBBLER_CACHE_LEN);
--- apps/scrobbler.h	(revision 289)
+++ apps/scrobbler.h	(revision 290)
@@ -21,6 +21,7 @@
 void scrobbler_change_event(struct mp3entry *id);
 int scrobbler_init(void);
 void scrobbler_shutdown(void);
+void scrobbler_set_enabled(bool enabled);
 #else
 #define scrobbler_init()
 #define scrobbler_shutdown()
