diff --git a/actions/pm-build-model b/actions/pm-build-model
index d12f644831fae5238d6a62ad1521931975c201bd..222a18efd280acd08718461f6c8c8278fa65f5f1 100755
--- a/actions/pm-build-model
+++ b/actions/pm-build-model
@@ -45,6 +45,12 @@ parser.AssembleParser()
 parser.add_argument('-o', '--model-file', metavar='<FILENAME>', type=str,
                     default='model.pdb', help='File to store model coordinates'+
                                               ' (default: %(default)s).')
+parser.add_argument('-t', '--model-termini', help="Enforce modelling of " +
+                    "terminal stretches without template coverage with a " +
+                    "crude Monte Carlo approach. The accuracy of those " +
+                    "termini is likely to be limited.", action="store_true")
+
+
 # lots of checking being done here -> see PM3ArgumentParser
 opts = parser.Parse()
 
@@ -78,7 +84,8 @@ try:
     if len(opts.fragger_handles) > 0:
         modelling.SetFraggerHandles(mhandle, opts.fragger_handles)
     # build final model
-    final_model = modelling.BuildFromRawModel(mhandle)
+    final_model = modelling.BuildFromRawModel(mhandle, 
+                                              model_termini=opts.model_termini)
 except Exception as ex:
     helper.MsgErrorAndExit("Failed to perform modelling! An exception of type "+
                            type(ex).__name__ + " occured: " + str(ex), 3)
diff --git a/modelling/pymod/_pipeline.py b/modelling/pymod/_pipeline.py
index ecb968ba34349b7c60770cdcb5b7c54ae3efa4e7..b8895042d83adfa364b2c413f0abf08f5a174e6d 100644
--- a/modelling/pymod/_pipeline.py
+++ b/modelling/pymod/_pipeline.py
@@ -430,7 +430,8 @@ def CheckFinalModel(mhandle):
             ost.LogInfo("Stereo-chemical problem in sidechain " + \
                         "of residue " + str(res))
 
-def BuildFromRawModel(mhandle, use_amber_ff=False, extra_force_fields=list()):
+def BuildFromRawModel(mhandle, use_amber_ff=False, extra_force_fields=list(),
+                      model_termini=False):
     '''Build a model starting with a raw model (see :func:`BuildRawModel`).
 
     This function implements a recommended pipeline to generate complete models
@@ -474,6 +475,19 @@ def BuildFromRawModel(mhandle, use_amber_ff=False, extra_force_fields=list()):
                                existing parametrization are skipped.
     :type extra_force_fields:  :class:`list` of :class:`ost.mol.mm.Forcefield`
 
+    :param model_termini: The default modelling pipeline in ProMod3 is optimized
+                          to generate a gap-free model of the region in the 
+                          target sequence(s) that is covered with template 
+                          information. Terminal extensions without template 
+                          coverage are negelected. 
+                          You can activate this flag to enforce a model of the
+                          full target sequence(s). The terminal parts will be 
+                          modelled with a crude Monte Carlo approach. Be aware
+                          that the accuracy of those termini is likely to be
+                          limited. Termini of length 1 won't be modelled.
+    :type model_termini:  :class:`bool`
+                          
+
     :return: Delivers the model as an |ost_s| entity.
     :rtype: :class:`Entity <ost.mol.EntityHandle>`
     '''
@@ -493,8 +507,9 @@ def BuildFromRawModel(mhandle, use_amber_ff=False, extra_force_fields=list()):
     rotamer_library = sidechain.LoadBBDepLib()
     merge_distance = 4
 
-    # remove terminal gaps
-    RemoveTerminalGaps(mhandle)
+    if not model_termini:
+        # remove terminal gaps
+        RemoveTerminalGaps(mhandle)
 
     # check whether we have fragger handles
     fragger_handles = None
@@ -507,6 +522,10 @@ def BuildFromRawModel(mhandle, use_amber_ff=False, extra_force_fields=list()):
               fragment_db=fragment_db, structure_db=structure_db, 
               torsion_sampler=torsion_sampler, fragger_handles=fragger_handles)
 
+    if model_termini:
+        ModelTermini(mhandle, torsion_sampler, fragger_handles=fragger_handles)
+        RemoveTerminalGaps(mhandle)  # length=1 ignored above
+
     # build sidechains
     BuildSidechains(mhandle, merge_distance, fragment_db,
                     structure_db, torsion_sampler, rotamer_library)