diff --git a/modules/bindings/tests/test_hhblits.py b/modules/bindings/tests/test_hhblits.py
index 305e67511615051727617c277b0379bc05245718..efa4f2f76fbbee96d6ddb92c0ee1daa171cb5e51 100644
--- a/modules/bindings/tests/test_hhblits.py
+++ b/modules/bindings/tests/test_hhblits.py
@@ -12,7 +12,7 @@ import datetime
 import ost
 from ost import seq
 from ost import settings
-from ost.bindings import hhblits
+from ost.bindings import hhblits3
 
 class _UnitTestHHblitsLog(ost.LogSink):
   """Dedicated logger to hide some expected warning/ error messages.
@@ -53,7 +53,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'PDELIVDRIVGRRVHAPSGRVYHVKFNPPKVEGKDDV'+
                                        'TGEELTTRKDDQEETVRKRLVEYHQMTAPLIGYYYYS'+
                                        'KEAEAGNTKYAKVDGTKPVAEVRADLEKILG')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         # this works only as long as utils.TempDirWithFiles() names the first
         # fasta file seq01.fasta
         self.assertEqual(self.hh.filename[-11:], 'seq01.fasta')
@@ -68,7 +68,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'TGEELTTRKDDQEETVRKRLVEYHQMTAPLIGYYYYS'+
                                        'KEAEAGNTKYAKVDGTKPVAEVRADLEKILG')
         tmpdir = tempfile.mkdtemp()
-        self.hh = hhblits.HHblits(query_seq, self.hhroot, working_dir=tmpdir)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot, working_dir=tmpdir)
         self.assertEqual(self.hh.filename, os.path.join(tmpdir,
                                                         'query_hhblits.fasta'))
         self.assertEqual(self.hh.working_dir, tmpdir)
@@ -76,14 +76,14 @@ class TestHHblitsBindings(unittest.TestCase):
 
     def testFileNoWDir(self):
         # we have a sequence but no working dir
-        self.hh = hhblits.HHblits('testfiles/seq2.fasta', self.hhroot)
+        self.hh = hhblits3.HHblits('testfiles/seq2.fasta', self.hhroot)
         self.assertEqual(self.hh.filename[-10:], 'seq2.fasta')
 
     def testFileWDir(self):
         # we have a sequence and a working dir
         tmpdir = tempfile.mkdtemp()
-        self.hh = hhblits.HHblits('testfiles/seq2.fasta', self.hhroot,
-                                  working_dir=tmpdir)
+        self.hh = hhblits3.HHblits('testfiles/seq2.fasta', self.hhroot,
+                                   working_dir=tmpdir)
         self.assertEqual(self.hh.filename, os.path.join(tmpdir, 'seq2.fasta'))
         self.assertEqual(self.hh.working_dir, tmpdir)
         self.hh.needs_cleanup = True
@@ -91,8 +91,8 @@ class TestHHblitsBindings(unittest.TestCase):
     def testDoCleanup(self):
         # test that cleanup cleans up
         tmpdir = tempfile.mkdtemp()
-        self.hh = hhblits.HHblits('testfiles/seq2.fasta', self.hhroot,
-                                  working_dir=tmpdir)
+        self.hh = hhblits3.HHblits('testfiles/seq2.fasta', self.hhroot,
+                                   working_dir=tmpdir)
         self.assertTrue(os.path.isdir(tmpdir))
         self.hh.needs_cleanup = True
         self.hh.Cleanup()
@@ -101,8 +101,8 @@ class TestHHblitsBindings(unittest.TestCase):
     def testDoNotCleanup(self):
         # test that cleanup cleans up
         tmpdir = tempfile.mkdtemp()
-        self.hh = hhblits.HHblits('testfiles/seq2.fasta', self.hhroot,
-                                  working_dir=tmpdir)
+        self.hh = hhblits3.HHblits('testfiles/seq2.fasta', self.hhroot,
+                                   working_dir=tmpdir)
         self.assertTrue(os.path.isdir(tmpdir))
         self.hh.needs_cleanup = False
         self.hh.Cleanup()
@@ -113,8 +113,8 @@ class TestHHblitsBindings(unittest.TestCase):
     def testCleanupFailed(self):
         # test that cleanup cleans up
         tmpdir = tempfile.mkdtemp()
-        self.hh = hhblits.HHblits('testfiles/seq2.fasta', self.hhroot,
-                                  working_dir=tmpdir)
+        self.hh = hhblits3.HHblits('testfiles/seq2.fasta', self.hhroot,
+                                   working_dir=tmpdir)
         self.assertTrue(os.path.isdir(tmpdir))
         self.hh.needs_cleanup = False
         self.hh.CleanupFailed()
@@ -123,7 +123,7 @@ class TestHHblitsBindings(unittest.TestCase):
     def testFileNoExists(self):
         # test on calling with a non-existing fasta file
         with self.assertRaises(IOError) as ioe:
-            hhblits.HHblits('notthere.fasta', self.hhroot)
+            hhblits3.HHblits('notthere.fasta', self.hhroot)
         self.assertEqual(ioe.exception.errno, 2)
         self.assertEqual(ioe.exception.strerror, 'No such file or directory')
 
@@ -134,7 +134,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         a3m = self.hh.BuildQueryMSA('testfiles/hhblitsdb/unittestdb', 
                                     assign_ss = False)
         self.assertTrue(filecmp.cmp(a3m, "testfiles/testali_two_no_ss.a3m"))
@@ -146,7 +146,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         _, self.tmpfile = tempfile.mkstemp(suffix='.hmm')
         os.remove(self.tmpfile)
         hhfile = self.hh.A3MToProfile("testfiles/testali.a3m",
@@ -167,7 +167,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         hhfile = self.hh.A3MToProfile("testfiles/testali.a3m")
         with open(hhfile) as tfh:
           tlst = tfh.readlines()
@@ -186,7 +186,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         hhfile = self.hh.A3MToProfile("testfiles/testali.a3m",
                                       hhm_file="testfiles/test.hmm")
         # when the hmm file already exists, its not touched, so files should be
@@ -200,7 +200,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         with self.assertRaises(IOError) as ioe:
             self.hh.A3MToProfile("doesnotexist.a3m")
         self.assertEqual(ioe.exception.errno, None)
@@ -214,7 +214,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         _, self.tmpfile = tempfile.mkstemp(suffix='.seq219')
         os.remove(self.tmpfile)
         csfile = self.hh.A3MToCS("testfiles/testali.a3m",
@@ -231,7 +231,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
 
         csfile = self.hh.A3MToCS("testfiles/testali.a3m",
                                  options={'-alphabet' :
@@ -248,7 +248,7 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         csfile = self.hh.A3MToCS("testfiles/testali.a3m",
                                  cs_file='testfiles/test.seq219',
                                  options={'-alphabet' :
@@ -264,12 +264,12 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         search_file = self.hh.Search("testfiles/testali.a3m",
                                      'testfiles/hhblitsdb/unittestdb')
 
         with open(search_file) as f:
-              header, hits = hhblits.ParseHHblitsOutput(f)
+              header, hits = hhblits3.ParseHHblitsOutput(f)
         self.assertEqual(len(hits), 4)
         exp_scores = [199.3, 12.3, 11.5, 8.1]
         for hit_idx in range(4):
@@ -281,14 +281,14 @@ class TestHHblitsBindings(unittest.TestCase):
                                        'ALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL'+
                                        'LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL'+
                                        'TSKYR')
-        self.hh = hhblits.HHblits(query_seq, self.hhroot)
+        self.hh = hhblits3.HHblits(query_seq, self.hhroot)
         with self.assertRaises(RuntimeError) as rte:
             self.hh.Search("doesnotexist.a3m", 'testfiles/hhblitsdb/unittestdb')
 
     def testParseHHMWorking(self):
         # get info from an HHM file
         with open("testfiles/test.hmm") as hhm_fh:
-            prof = hhblits.ParseHHM(hhm_fh)
+            prof = hhblits3.ParseHHM(hhm_fh)
         self.assertEqual(''.join([str(x) for x in prof['ss_conf']]),
                          '999999999999998873391557999999998639441123987788888'+
                          '856788999999999998735477789999999887650299989899889'+
@@ -307,7 +307,7 @@ class TestHHblitsBindings(unittest.TestCase):
         # get info from an HHM file
         with self.assertRaises(IOError) as ioe:
             with open('testfiles/testali.a3m') as f:
-              hhblits.ParseHHM(f)
+              hhblits3.ParseHHM(f)
         self.assertEqual(ioe.exception.args[0],
                          'Profile file "testfiles/testali.a3m" is missing '+
                          'the "Consensus" section')
@@ -315,7 +315,7 @@ class TestHHblitsBindings(unittest.TestCase):
     def testParseA3MWorking(self):
         # get info from an HHM file
         with open("testfiles/testali.a3m") as a3m_fh:
-            prof = hhblits.ParseA3M(a3m_fh)
+            prof = hhblits3.ParseA3M(a3m_fh)
         self.assertEqual(''.join([str(x) for x in prof['ss_conf']]),
                          '999999999999998873391557999999998639441123987788888'+
                          '856788999999999998735477789999999887650299989899889'+
@@ -329,7 +329,7 @@ class TestHHblitsBindings(unittest.TestCase):
     def fastParseHeader(self):
         header_line = '  1 814cbc1899f35c872169524af30fc2 100.0  5E-100' + \
                       '  5E-104  710.5  34.1  277    3-293     2-280 (281)'
-        hit, offset = hhblits.ParseHeaderLine(header_line)
+        hit, offset = hhblits3.ParseHeaderLine(header_line)
         self.assertEqual(hit.hit_id, '814cbc1899f35c872169524af30fc2')
         self.assertAlmostEqual(hit.evalue, 0)
         self.assertAlmostEqual(hit.prob, 100.0)
@@ -339,7 +339,7 @@ class TestHHblitsBindings(unittest.TestCase):
 
     def testParseHHblitsOutput(self):
         with open("testfiles/test.hhr") as f:
-          header, hits = hhblits.ParseHHblitsOutput(f)
+          header, hits = hhblits3.ParseHHblitsOutput(f)
         self.assertEqual(header.query, 'Test')
         self.assertEqual(header.match_columns, 141)
         self.assertEqual(header.n_eff, 9.4)
@@ -420,6 +420,7 @@ class TestHHblitsBindings(unittest.TestCase):
 
 if __name__ == "__main__":
     try:
+        from ost.bindings import hhblits
         hhblits_version_string = hhblits.GetHHblitsVersionString()
     except:
         print("No HHblits installation found: skip unit tests")