diff --git a/sickbeard/providers/nzbx.py b/sickbeard/providers/nzbx.py
index d4d0e97ecaab3aaab03939fdf8caec5cee256930..e9097593bfb409442e0745f2970680fae94114ad 100644
--- a/sickbeard/providers/nzbx.py
+++ b/sickbeard/providers/nzbx.py
@@ -18,7 +18,6 @@
 
 import urllib
 import generic
-from datetime import datetime
 import json
 
 import sickbeard
@@ -26,9 +25,9 @@ from sickbeard import tvcache
 from sickbeard import logger
 from sickbeard import classes
 from sickbeard import show_name_helpers
+from datetime import datetime
 from lib.unidecode import unidecode
 
-
 class NzbXProvider(generic.NZBProvider):
 
     def __init__(self):
@@ -51,15 +50,15 @@ class NzbXProvider(generic.NZBProvider):
         url = self.url + 'nzb?' + str(item['guid']) + '*|*' + urllib.quote_plus(title)
         return (title, url)
 
-    def _doSearch(self, search, show=None):
+    def _doSearch(self, search, show=None, age=0):
         params = {'age': sickbeard.USENET_RETENTION,
                   'completion': sickbeard.NZBX_COMPLETION,
                   'cat': 'tv-hd|tv-sd',
                   'limit': 250,
                   'q': search}
 
-        if not params['age']:
-            params['age'] = 500
+        if age or not params['age']:
+            params['age'] = age
 
         if not params['completion']:
             params['completion'] = 100
@@ -71,7 +70,7 @@ class NzbXProvider(generic.NZBProvider):
         try:
             items = json.loads(data)
         except ValueError:
-            logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR)
+            logger.log(u"Error trying to decode nzbX json data", logger.ERROR)
             return[]
 
         results = []
@@ -79,32 +78,15 @@ class NzbXProvider(generic.NZBProvider):
             if item['name'] and item['guid']:
                 results.append(item)
             else:
-                logger.log(u"Partial result from " + self.provider.name, logger.DEBUG)
+                logger.log(u"Partial result from nzbx", logger.DEBUG)
         return results
 
     def findPropers(self, date=None):
-        params = {'completion': 100,
-                  'cat': 'tv-hd|tv-sd',
-                  'age': 4,
-                  'q': '.proper.|.repack.'}
-
-        url = self.url + 'api/sickbeard?' + urllib.urlencode(params)
-        logger.log(u"nzbX proper search url: " + url, logger.DEBUG)
-
-        data = self.getURL(url)
-        try:
-            items = json.loads(data)
-        except ValueError:
-            logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR)
-            return[]
-
         results = []
-        for item in items:
-            if item['name'] and item['guid'] and item['postdate']:
+        for item in self._doSearch('.proper.|.repack.', age=4):
+            if item['postdate']:
                 name, url = self._get_title_and_url(item)
                 results.append(classes.Proper(name, url, datetime.fromtimestamp(item['postdate'])))
-            else:
-                logger.log(u"Partial result from " + self.provider.name, logger.DEBUG)
         return results
 
 
@@ -114,19 +96,6 @@ class NzbXCache(tvcache.TVCache):
         tvcache.TVCache.__init__(self, provider)
         self.minTime = 20
 
-    def _getRSSData(self):
-        params = {'q': '',
-                  'completion': sickbeard.NZBX_COMPLETION,
-                  'cat': 'tv-hd|tv-sd',
-                  'limit': 250}
-
-        if not params['completion']:
-            params['completion'] = 100
-
-        url = self.provider.url + 'api/sickbeard?' + urllib.urlencode(params)
-        logger.log(u"nzbX cache update URL: " + url, logger.DEBUG)
-        return self.provider.getURL(url)
-
     def _parseItem(self, item):
         title, url = self.provider._get_title_and_url(item)
         logger.log(u"Adding item from RSS to cache: " + title, logger.DEBUG)
@@ -136,27 +105,16 @@ class NzbXCache(tvcache.TVCache):
         if not self.shouldUpdate():
             return
 
-        data = self._getRSSData()
-        # as long as the http request worked we count this as an update
-        if data:
-            self.setLastUpdate()
-        else:
+        items = self.provider._doSearch('')
+        if not items:
             return
+        self.setLastUpdate()
 
-        # now that we've loaded the current RSS feed lets delete the old cache
-        logger.log(u"Clearing " + self.provider.name + " cache and updating with new information")
+        # now that we've got the latest releases lets delete the old cache
+        logger.log(u"Clearing nzbX cache and updating with new information")
         self._clearCache()
 
-        try:
-            items = json.loads(data)
-        except ValueError:
-            logger.log(u"Error trying to decode " + self.provider.name + " RSS feed", logger.ERROR)
-            return
-
         for item in items:
-            if item['name'] and item['guid']:
-                self._parseItem(item)
-            else:
-                logger.log(u"Partial result from " + self.provider.name, logger.DEBUG)
+            self._parseItem(item)
 
 provider = NzbXProvider()