diff --git a/server/djrandom/metadata_fixer/metadata_fixer.py b/server/djrandom/metadata_fixer/metadata_fixer.py
index c89ed8fed76251b858ad7facef3649fc4ed10da1..03005e09624acd696e254296289c596d7122dfb7 100644
--- a/server/djrandom/metadata_fixer/metadata_fixer.py
+++ b/server/djrandom/metadata_fixer/metadata_fixer.py
@@ -9,9 +9,8 @@ import urllib2
 from djrandom import daemonize
 from djrandom import utils
 from djrandom.model.mp3 import MP3
-from djrandom.database import Session, init_db
+from djrandom.database import Session, init_db, indexer
 from djrandom.scanner import metadata
-from djrandom.scanner import indexer
 
 log = logging.getLogger(__name__)
 
@@ -26,7 +25,6 @@ class MetadataFixer(object):
 
     def __init__(self, solr_url, echonest_api_key):
         self.api_key = echonest_api_key
-        self.idx = indexer.Indexer(solr_url)
 
     def identify_song(self, mp3):
         json_fp = mp3.get_fingerprint()
@@ -72,7 +70,6 @@ class MetadataFixer(object):
             try:
                 self.process(mp3)
                 mp3.state = MP3.READY
-                self.idx.add_mp3(mp3)
                 log.info('found: %s / %s' % (mp3.artist, mp3.title))
                 n_ok += 1
             except NoMetadataError:
@@ -82,9 +79,10 @@ class MetadataFixer(object):
                 log.error(traceback.format_exc())
                 n_err += 1
                 mp3.state = MP3.ERROR
+            indexer.add_mp3(mp3)
             Session.add(mp3)
         Session.commit()
-        self.idx.commit()
+        indexer.commit()
         log.debug('total: %d songs, found: %d' % (n_bad, n_ok))
 
     def run(self, run_once):
@@ -99,8 +97,8 @@ class MetadataFixer(object):
 def run_fixer(solr_url, echonest_api_key, db_url, run_once):
     socket.setdefaulttimeout(300)
 
-    init_db(db_url)
-    fixer = MetadataFixer(solr_url, echonest_api_key)
+    init_db(db_url, solr_url)
+    fixer = MetadataFixer(echonest_api_key)
     fixer.run(run_once)