diff --git a/sickbeard/search.py b/sickbeard/search.py
index c481515b98c646acc9acdb99103eb3cee5d25446..58145a60e973d7dbcd4b0cdaebd7ffd3078d30f0 100644
--- a/sickbeard/search.py
+++ b/sickbeard/search.py
@@ -372,8 +372,6 @@ def searchForNeededEpisodes():
 
     didSearch = False
 
-    origThreadName = threading.currentThread().name
-
     show_list = sickbeard.showList
     fromDate = datetime.date.fromordinal(1)
     episodes = []
@@ -383,13 +381,20 @@ def searchForNeededEpisodes():
             sickbeard.name_cache.buildNameCache(curShow)
             episodes.extend(wantedEpisodes(curShow, fromDate))
 
+    if not episodes:
+        # nothing wanted so early out, ie: avoid whatever abritrarily
+        # complex thing a provider cache update entails, for example,
+        # reading rss feeds
+        logger.log(u"No episodes needed.", logger.INFO)
+        return foundResults.values()
+
+    origThreadName = threading.currentThread().name
+
     providers = [x for x in sickbeard.providers.sortedProviderList(sickbeard.RANDOMIZE_PROVIDERS) if x.is_active() and x.enable_daily]
     for curProvider in providers:
         threading.currentThread().name = origThreadName + " :: [" + curProvider.name + "]"
         curProvider.cache.updateCache()
 
-    threading.currentThread().name = origThreadName
-
     for curProvider in providers:
         threading.currentThread().name = origThreadName + " :: [" + curProvider.name + "]"
         curFoundResults = {}