diff --git a/client/djrandom_client/upload.py b/client/djrandom_client/upload.py
index f52bedd460c6073b7dba38fa510c229164ea8eb6..412046e34b8a89966883092250b66dd7fcd9afb4 100644
--- a/client/djrandom_client/upload.py
+++ b/client/djrandom_client/upload.py
@@ -65,7 +65,7 @@ class Uploader(threading.Thread):
         self.api_key = api_key
         self.server_url = server_url
         self.queue = Queue.Queue(100)
-        self.db = FileDatabase(db)
+        self.db_path = db
         self.opener = urllib2.build_opener(throttle.ThrottledHTTPHandler)
 
         user_agent = 'djrandom_client/%s (%s %s Python/%s)' % (
@@ -112,18 +112,19 @@ class Uploader(threading.Thread):
         log.info('successfully uploaded %s (%s)' % (path, sha1))
 
     def run(self):
+        db = FileDatabase(self.db_path)
         try:
             while True:
                 stats.data.set('uploading', None)
                 path = self.queue.get()
                 if path is None:
                     break
-                if self.db.has(path):
+                if db.has(path):
                     continue
                 stats.data.set('uploading', path)
                 try:
                     self.upload(path)
-                    self.db.add(path)
+                    db.add(path)
                 except Exception, e:
                     log.error('error uploading %s: %s' % (path, str(e)))
                     stats.data.incr('errors')
@@ -131,9 +132,9 @@ class Uploader(threading.Thread):
                     stats.data.set('last_error_timestamp', '%i' % time.time())
         finally:
             log.debug('uploader thread exiting')
-            self.db.close()
+            db.close()
 
     def stop(self):
         # This runs in a different thread.
-        self.db.close()
+        pass