diff --git a/loop/doc/backbone.rst b/loop/doc/backbone.rst
index 554bdea26e92cd4379e733ff36271540e1786fa5..15288fb3c55e5af3ff5a698fc8fc41a9223778a4 100644
--- a/loop/doc/backbone.rst
+++ b/loop/doc/backbone.rst
@@ -299,6 +299,12 @@ The BackboneList class
 
     Remove all residues from this list.
 
+  .. method:: Copy()
+    
+    Creates and returns a deep copy of this :class:`BackboneList`. This can be
+    useful, since Python uses reference assignments.
+
+    :rtype:  :class:`BackboneList`
 
   .. method:: ReconstructCBetaPositions()
 
diff --git a/loop/pymod/export_backbone.cc b/loop/pymod/export_backbone.cc
index 69a9c21bf1f4555278d3d5eead99c23f9e935b01..6d97c8a7eddf9dc0544697e1e00c486e58d323b5 100644
--- a/loop/pymod/export_backbone.cc
+++ b/loop/pymod/export_backbone.cc
@@ -66,6 +66,11 @@ BackboneListPtr FullInitWrapperRHList(const String& sequence,
   return p;    
 }
 
+BackboneListPtr WrapCopy(BackboneListPtr p){
+  BackboneListPtr return_p(new BackboneList(*p));
+  return return_p;
+}
+
 void InsertInto_int(BackboneListPtr p, ost::mol::ChainHandle& chain,
                     uint start_resnum) {
   p->InsertInto(chain, start_resnum);
@@ -156,6 +161,7 @@ void export_Backbone() {
     .def(init<const String&>())
     .def("__init__", make_constructor(&FullInitWrapper))
     .def("__init__", make_constructor(&FullInitWrapperRHList))
+    .def("Copy", &WrapCopy)
     
     .def("ToDensity", &BackboneList::ToDensity,
          (arg("padding")=10.0, arg("sampling")=geom::Vec3(1.0,1.0,1.0),
diff --git a/modelling/pymod/_closegaps.py b/modelling/pymod/_closegaps.py
index 57219d00621d2d72afb140c1383a3393835e0d66..abfc2afe5c873d2db23b9189715e821f01b2b2e9 100644
--- a/modelling/pymod/_closegaps.py
+++ b/modelling/pymod/_closegaps.py
@@ -160,7 +160,7 @@ def _CloseLoopFrame(mhandle, gap_orig, actual_candidates, actual_extended_gaps,
         start_index = actual_extended_gaps[i].before.GetNumber().GetNum()\
                       - min_before_resnum
         for j, loop_candidate in enumerate(loop_candidates):
-            actual_frame_backbone_list = frame_backbone_list
+            actual_frame_backbone_list = frame_backbone_list.Copy()
             actual_frame_backbone_list.ReplaceFragment(
                 loop_candidate, start_index, False)
             final_loop_candidates.Add(actual_frame_backbone_list)