diff --git a/modules/mol/base/pymod/export_entity_view.cc b/modules/mol/base/pymod/export_entity_view.cc
index 8d40e6261544fc1d79850cb2fbd88ce3de8d1a1c..765c33f57cba357de42db3a744937a9cf77fe58b 100644
--- a/modules/mol/base/pymod/export_entity_view.cc
+++ b/modules/mol/base/pymod/export_entity_view.cc
@@ -157,7 +157,8 @@ void export_EntityView()
   def("CreateViewFromAtoms", create_view_1);
   def("CreateViewFromAtoms", create_view_2);
   
-  def("CreateEntityFromView", &CreateEntityFromView);
+  def("CreateEntityFromView", &CreateEntityFromView, 
+      arg("handle")=EntityHandle());
   class_<EntityViewList>("EntityViewList", init<>())
     .def(vector_indexing_suite<EntityViewList>())
   ;
diff --git a/modules/mol/base/src/view_op.cc b/modules/mol/base/src/view_op.cc
index 2999c12746e42655d5c6730c5921f24a6430be0a..88e964d92c3ee655ca600c1dc31ecf36ae53238e 100644
--- a/modules/mol/base/src/view_op.cc
+++ b/modules/mol/base/src/view_op.cc
@@ -389,13 +389,16 @@ private:
 }
 
 EntityHandle CreateEntityFromView(const EntityView& view,
-                                  bool include_exlusive_atoms)
+                                  bool include_exlusive_atoms,
+                                  EntityHandle handle)
 {
   Profile create_time("mol::CreateEntityFromView");
-  EntityHandle ent=CreateEntity();
-  Replicator replicator(ent.Impl(), view, include_exlusive_atoms);
-  TorsionAdder adder(replicator, ent.Impl(), view);
-  return ent;
+  if (!handle.IsValid()) {
+    handle=CreateEntity();
+  }
+  Replicator replicator(handle.Impl(), view, include_exlusive_atoms);
+  TorsionAdder adder(replicator, handle.Impl(), view);
+  return handle;
 }
 
 }} // ns
diff --git a/modules/mol/base/src/view_op.hh b/modules/mol/base/src/view_op.hh
index c11b71cbb5bac6aa4b2a59bb93f9c0c802654bc0..809363758605e399c190403b4e8fe4e5468eb2c5 100644
--- a/modules/mol/base/src/view_op.hh
+++ b/modules/mol/base/src/view_op.hh
@@ -26,7 +26,7 @@
 #include <ost/mol/view_type_fw.hh>
 #include <ost/mol/handle_type_fw.hh>
 #include <ost/integrity_error.hh>
-
+#include <ost/mol/entity_handle.hh>
 namespace ost { namespace mol {
   
 
@@ -87,8 +87,12 @@ CompareViews(const EntityView& view1, const EntityView& view2);
 /// \param view is the view to be converted to a handle
 /// \param include_exlusive_atoms if true, atoms that are part of an exclusive
 ///     bond will also be included in the new entity handle.
-EntityHandle DLLEXPORT_OST_MOL CreateEntityFromView(const EntityView& view,
-                                                    bool include_exlusive_atoms);
+/// \param handle If invalid a new entity will be created. If valid, the atoms, 
+///     residues, chains, bonds and torsions will be added to handle. This is 
+///     useful to combine several entities into one.
+EntityHandle DLLEXPORT_OST_MOL 
+CreateEntityFromView(const EntityView& view, bool include_exlusive_atoms,
+                     EntityHandle handle=EntityHandle());
 
 }} // ns
 #endif