diff --git a/sidechain/pymod/_reconstruct_sidechains.py b/sidechain/pymod/_reconstruct_sidechains.py
index 2fc82977addb81ed388ae3f15076bb286cab26e5..7ec0a9f86f174d5f01f1bb915187173997afa76b 100644
--- a/sidechain/pymod/_reconstruct_sidechains.py
+++ b/sidechain/pymod/_reconstruct_sidechains.py
@@ -233,7 +233,10 @@ def Reconstruct(ent, keep_sidechains = False, build_disulfids = True,
                     cystein_rotamers[i][min_index_k].ApplyOnResidue(prot.residues[cystein_indices[i]].handle,
                                                                     consider_hydrogens=False)
                     cystein_rotamers[j][min_index_l].ApplyOnResidue(prot.residues[cystein_indices[j]].handle,
-                                                                    consider_hydrogens=False)                
+                                                                    consider_hydrogens=False) 
+                    sidechain.ConnectSidechain(prot.residues[cystein_indices[i]].handle,sidechain.CYS)
+                    sidechain.ConnectSidechain(prot.residues[cystein_indices[j]].handle,sidechain.CYS)
+
 
         #All cysteins participating in a disulfid bond have been applied to the
         #structure and added to the frame.
@@ -336,6 +339,7 @@ def Reconstruct(ent, keep_sidechains = False, build_disulfids = True,
     for i,rot_group,sol in zip(residues_with_rotamer_group,rotamer_groups,solution):
         try:
             rot_group[sol].ApplyOnResidue(prot.residues[i].handle,consider_hydrogens=False)
+            sidechain.ConnectSidechain(prot.residues[i].handle,rotamer_ids[i])
         except:
             print "there is a backbone atom missing... ",prot.residues[i].GetQualifiedName()