diff --git a/modules/mol/alg/doc/molalg.rst b/modules/mol/alg/doc/molalg.rst
index 51de4cca63a8b7f794d4a671ca5cff1b779d7cdb..cf72694bcc7493667ff5921bea6b8e7ac7d65e66 100644
--- a/modules/mol/alg/doc/molalg.rst
+++ b/modules/mol/alg/doc/molalg.rst
@@ -1877,7 +1877,7 @@ API
   The API here is set such that the functions modify the passed structure *ent*
   in-place. If this is not ok, please work on a copy of the structure.
 
-.. function:: Molck(ent, lib, settings)
+.. function:: Molck(ent, lib, settings, [prune=True])
 
   Runs Molck on provided entity.
 
@@ -1887,6 +1887,10 @@ API
   :type lib: :class:`~ost.conop.CompoundLib`
   :param settings: Molck settings
   :type settings: :class:`MolckSettings`
+  :param prune: Whether to remove residues/chains that don't contain atoms 
+                anymore after Molck cleanup
+  :type prune: `bool` 
+
 
 
 .. function:: MapNonStandardResidues(ent, lib)
diff --git a/modules/mol/alg/pymod/export_molck.cc b/modules/mol/alg/pymod/export_molck.cc
index e5e27dac593ebaf321c1b2fd5558ff53f209f543..c626a6ce306f96ed9cbbcb24fe8b05aa4385b9ce 100644
--- a/modules/mol/alg/pymod/export_molck.cc
+++ b/modules/mol/alg/pymod/export_molck.cc
@@ -133,5 +133,5 @@ void export_Molck()
 
   def("CleanUpElementColumn", &CleanUpElementColumn, (arg("ent"), arg("lib")));
 
-  def("Molck", &Molck, (arg("ent"), arg("lib"), arg("settings")));
+  def("Molck", &Molck, (arg("ent"), arg("lib"), arg("settings"), arg("prune")=true));
 }
diff --git a/modules/mol/alg/src/molck.cc b/modules/mol/alg/src/molck.cc
index 1eaf1988a9ac54947e639ad3615077eba5a959d0..1a140b559f6639ee9132d0fec836cdddeb73d39b 100644
--- a/modules/mol/alg/src/molck.cc
+++ b/modules/mol/alg/src/molck.cc
@@ -174,7 +174,8 @@ void CleanUpElementColumn(EntityHandle& ent, CompoundLibPtr lib){
 
 void Molck(ost::mol::EntityHandle& ent,
            ost::conop::CompoundLibPtr lib,
-           const MolckSettings& settings = MolckSettings()){
+           const MolckSettings& settings,
+           bool prune) {
 
   if(!lib) {
     throw ost::Error("Require valid compound library!");
@@ -193,7 +194,12 @@ void Molck(ost::mol::EntityHandle& ent,
               settings.colored);
   if (settings.assign_elem)  {
     CleanUpElementColumn(ent, lib);
-  }          
+  } 
+
+  if(prune) {
+    ost::mol::XCSEditor edi = ent.EditXCS();
+    edi.Prune();
+  }         
 }
 
 }}} // ns
\ No newline at end of file
diff --git a/modules/mol/alg/src/molck.hh b/modules/mol/alg/src/molck.hh
index b25b1b81e3a428c132af56282a771f35e9303024..f021ef7ec9b81aaeabf5a46ceaaf8a8bfd84edee 100644
--- a/modules/mol/alg/src/molck.hh
+++ b/modules/mol/alg/src/molck.hh
@@ -97,7 +97,8 @@ void CleanUpElementColumn(ost::mol::EntityHandle& ent,
 
 void Molck(ost::mol::EntityHandle& ent,
            ost::conop::CompoundLibPtr lib,
-           const MolckSettings& settings);
+           const MolckSettings& settings,
+           bool prune = true);
 
 
 }}} // namespace