diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectGenreActivity.java b/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectGenreActivity.java
index 996edd6d..4aa273ba 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectGenreActivity.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectGenreActivity.java
@@ -111,13 +111,14 @@ public class SelectGenreActivity extends SubsonicTabActivity implements AdapterV
 			@Override
 			protected List<Genre> doInBackground() throws Throwable
 			{
+				boolean refresh = getIntent().getBooleanExtra(Constants.INTENT_EXTRA_NAME_REFRESH, false);
 				MusicService musicService = MusicServiceFactory.getMusicService(SelectGenreActivity.this);
 
 				List<Genre> genres = new ArrayList<Genre>();
 
 				try
 				{
-					genres = musicService.getGenres(SelectGenreActivity.this, this);
+					genres = musicService.getGenres(refresh, SelectGenreActivity.this, this);
 				}
 				catch (Exception x)
 				{
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/CachedMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/CachedMusicService.java
index 173604c1..97677268 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/CachedMusicService.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/CachedMusicService.java
@@ -405,14 +405,18 @@ public class CachedMusicService implements MusicService
 	}
 
 	@Override
-	public List<Genre> getGenres(Context context, ProgressListener progressListener) throws Exception
+	public List<Genre> getGenres(boolean refresh, Context context, ProgressListener progressListener) throws Exception
 	{
 		checkSettingsChanged(context);
+		if (refresh)
+		{
+			cachedGenres.clear();
+		}
 		List<Genre> result = cachedGenres.get();
 
 		if (result == null)
 		{
-			result = musicService.getGenres(context, progressListener);
+			result = musicService.getGenres(refresh, context, progressListener);
 			cachedGenres.set(result);
 		}
 
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicService.java
index df66ca78..a2cb6da2 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicService.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MusicService.java
@@ -53,7 +53,7 @@ public interface MusicService
 
 	boolean isLicenseValid(Context context, ProgressListener progressListener) throws Exception;
 
-	List<Genre> getGenres(Context context, ProgressListener progressListener) throws Exception;
+	List<Genre> getGenres(boolean refresh, Context context, ProgressListener progressListener) throws Exception;
 
 	void star(String id, String albumId, String artistId, Context context, ProgressListener progressListener) throws Exception;
 
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java
index c8bf71f4..d30b6e0d 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java
@@ -770,7 +770,7 @@ public class OfflineMusicService extends RESTMusicService
 	}
 
 	@Override
-	public List<Genre> getGenres(Context context, ProgressListener progressListener) throws Exception
+	public List<Genre> getGenres(boolean refresh, Context context, ProgressListener progressListener) throws Exception
 	{
 		throw new OfflineException("Getting Genres not available in offline mode");
 	}
diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java
index b5dd7bc9..984a9606 100644
--- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java
+++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java
@@ -829,7 +829,7 @@ public class RESTMusicService implements MusicService {
     }
 
     @Override
-    public List<Genre> getGenres(Context context,
+    public List<Genre> getGenres(boolean refresh, Context context,
                                  ProgressListener progressListener) throws Exception {
         updateProgressListener(progressListener, R.string.parser_reading);
         Response<GenresResponse> response = subsonicAPIClient.getApi().getGenres().execute();