diff --git a/modelling/doc/pipeline.rst b/modelling/doc/pipeline.rst
index c94a456e729d6781c73e65177117602935b5b0f1..65a6e44f52cb4b02d7b5ce0865dafa67e9d5f953 100644
--- a/modelling/doc/pipeline.rst
+++ b/modelling/doc/pipeline.rst
@@ -402,4 +402,3 @@ Modelling Steps
 
 .. autofunction:: CheckFinalModel
 
-.. autofunction:: ModelExtensions
diff --git a/modelling/pymod/CMakeLists.txt b/modelling/pymod/CMakeLists.txt
index c419f198f1e697bce65f06873e05d66f2379ef02..78ee6a047345e90cd8c9721cfe9510f1fd38ad56 100644
--- a/modelling/pymod/CMakeLists.txt
+++ b/modelling/pymod/CMakeLists.txt
@@ -19,7 +19,6 @@ set(MODELLING_PYMOD
   _molprobity.py
   _pipeline.py
   _ring_punches.py
-  _mtm.py
   _denovo.py
 )
 
diff --git a/modelling/pymod/__init__.py b/modelling/pymod/__init__.py
index d3a9cbf6d59ce7680b3c9c1ceda094346d65aa99..bff7496f49588cb6c0b33eecf9895573669fd262 100644
--- a/modelling/pymod/__init__.py
+++ b/modelling/pymod/__init__.py
@@ -4,5 +4,4 @@ from _closegaps import *
 from _molprobity import *
 from _pipeline import *
 from _ring_punches import *
-from _mtm import *
 from _denovo import *
diff --git a/modelling/pymod/_pipeline.py b/modelling/pymod/_pipeline.py
index ccfae92766986d40b3d36192f18c18190221f2f6..c56a3d0783ac990bd9cf16840d4bf1bb1b03ea62 100644
--- a/modelling/pymod/_pipeline.py
+++ b/modelling/pymod/_pipeline.py
@@ -8,7 +8,6 @@ from promod3 import loop, sidechain, core
 from _modelling import *
 from _closegaps import *
 from _ring_punches import *
-from _mtm import *
 # external
 import ost
 from ost import mol, conop
diff --git a/modelling/tests/test_close_gaps.py b/modelling/tests/test_close_gaps.py
index 8ea5ed71b3a1cc8db6a77c2d5a449c6f098f8ad6..988cb6078aac2da0ad8a19ba9441ce4fbe2c8aec 100644
--- a/modelling/tests/test_close_gaps.py
+++ b/modelling/tests/test_close_gaps.py
@@ -611,80 +611,6 @@ class CloseGapsTests(unittest.TestCase):
         # check backbone
         self.backboneCheckHandle(mhandle)
 
-    def testModelTerminiOverlap(self):
-
-        tpl1 = io.LoadPDB("data/3b08-3.pdb.gz")
-        tpl1 = tpl1.Select("cname=A")
-        tpl1_aln = io.LoadAlignment("data/3b08-3.fasta")
-        tpl1_aln.AttachView(1, tpl1)
-
-        tpl2 = io.LoadPDB("data/4ksl-1.pdb.gz")
-        tpl2 = tpl2.Select("cname=B")
-        tpl2_aln = io.LoadAlignment("data/4ksl-1.fasta")
-        tpl2_aln.AttachView(1, tpl2)
-
-        rawmodel_1 = modelling.BuildRawModel(tpl1_aln)
-        rawmodel_2 = modelling.BuildRawModel(tpl2_aln)
-     
-        residue_numbers_1 = list()
-        residue_numbers_2 = list()
-        for r in rawmodel_1.model.residues:
-            residue_numbers_1.append(r.GetNumber().GetNum())
-        for r in rawmodel_2.model.residues:
-            residue_numbers_2.append(r.GetNumber().GetNum())
-
-        # Expect consistent number of residues...
-        self.assertEqual(len(rawmodel_1.model.residues), len(residue_numbers_1))
-
-        modelling.ModelExtensions(rawmodel_1, [rawmodel_2])
-
-        unique_numbers = list(set(residue_numbers_1 + residue_numbers_2))
-
-        # Expect all unique residue numbers from both rawmodels to be present
-        # in rawmodel_1
-        self.assertEqual(len(rawmodel_1.model.residues), len(unique_numbers))
-
-    def testModelTerminiNonOverlap(self):
-
-        tpl1 = io.LoadPDB("data/1cjx-1.pdb.gz")
-        tpl1 = tpl1.Select("cname=A")
-        tpl1_aln = io.LoadAlignment("data/1cjx-1.fasta")
-        tpl1_aln.SetSequenceOffset(1, 2)
-        tpl1_aln.AttachView(1, tpl1)
-
-        tpl2 = io.LoadPDB("data/2xim-1.pdb.gz")
-        tpl2 = tpl2.Select("cname=A")
-        tpl2_aln = io.LoadAlignment("data/2xim-1.fasta")
-        tpl2_aln.SetSequenceOffset(1, 5)
-        tpl2_aln.AttachView(1, tpl2)
-
-        rawmodel_1 = modelling.BuildRawModel(tpl1_aln)
-        rawmodel_2 = modelling.BuildRawModel(tpl2_aln)
-
-        residue_numbers_1 = list()
-        residue_numbers_2 = list()
-        for r in rawmodel_1.model.residues:
-            residue_numbers_1.append(r.GetNumber().GetNum())
-        for r in rawmodel_2.model.residues:
-            residue_numbers_2.append(r.GetNumber().GetNum())
-
-        linker_length = min(residue_numbers_1) - max(residue_numbers_2) + 1
-
-        # Expect consistent number of residues...
-        self.assertEqual(len(rawmodel_1.model.residues), len(residue_numbers_1))
-
-        modelling.ModelExtensions(rawmodel_1, [rawmodel_2], 
-                                  extension_strategy = "non-overlapping")
-
-        unique_numbers = list(set(residue_numbers_1 + residue_numbers_2))
-
-        # Expect all unique residue numbers from both rawmodels to be present
-        # in rawmodel_1, plus the linker region (please note, that linker start 
-        # and linker end are already contained in unique_numbers => -2
-
-        expected_residue_num = len(unique_numbers) + linker_length - 2
-        self.assertEqual(len(rawmodel_1.model.residues), expected_residue_num)
-
         
 if __name__ == "__main__":
     from ost import testutils