diff --git a/modules/conop/src/heuristic.cc b/modules/conop/src/heuristic.cc
index 335f14f123348f36bdf740ede1ab3cbd6987cc4b..d21c13fd513e816ade98b96787616593c2f7ec56 100644
--- a/modules/conop/src/heuristic.cc
+++ b/modules/conop/src/heuristic.cc
@@ -70,7 +70,8 @@ void HeuristicProcessor::DoProcess(DiagnosticsPtr diags,
       this->FillResidueProps(residue, compound);
       if (this->GetConnect()) {
         this->ConnectAtomsOfResidue(residue, compound, false);
-        this->ConnectResidues(prev, residue);
+        if (this->GetConnectAminoAcids()) 
+          this->ConnectResidues(prev, residue);
       }
       prev = residue;
       if (!this->GetConnect()) { continue; }
diff --git a/modules/conop/src/processor.hh b/modules/conop/src/processor.hh
index 0bf71a89676cdefa4b8c615a98157ab5f6afbe06..29acec1914419c28ba2f2424db657df75b2a2262 100644
--- a/modules/conop/src/processor.hh
+++ b/modules/conop/src/processor.hh
@@ -66,7 +66,7 @@ protected:
   mol::AtomHandle LocateAtom(const mol::AtomHandleList&, int ordinal) const;
 public:
   Processor(): check_bond_feasibility_(false),
-    assign_torsions_(false), connect_(true), 
+    assign_torsions_(false), connect_(true), connect_aa_(true),
     zero_occ_treatment_(CONOP_SILENT) {}
   void SetConnect(bool connect) {
     connect_ = connect;
@@ -82,6 +82,12 @@ public:
     return assign_torsions_;
   }
 
+  bool GetConnectAminoAcids() const {
+    return connect_aa_;
+  }
+  void SetConnectAminoAcids(bool c) {
+    connect_aa_ = c;
+  }
   bool GetCheckBondFeasibility() const {
     return check_bond_feasibility_;
   }
@@ -103,6 +109,7 @@ private:
   bool check_bond_feasibility_;
   bool assign_torsions_;
   bool connect_;
+  bool connect_aa_;
   ConopAction zero_occ_treatment_;
 };
 
diff --git a/modules/conop/src/rule_based.cc b/modules/conop/src/rule_based.cc
index 862faffada08ba9b48f4cc9a8fced2b2fde3da1d..65b89988f2cf35ca1a34be8840e331ccc595a89d 100644
--- a/modules/conop/src/rule_based.cc
+++ b/modules/conop/src/rule_based.cc
@@ -73,7 +73,8 @@ void RuleBasedProcessor::DoProcess(DiagnosticsPtr diags,
       if (this->GetConnect()) {
         this->ConnectAtomsOfResidue(residue, compound, 
                                     this->GetStrictHydrogens());
-        this->ConnectResidues(prev, residue);
+        if (this->GetConnectAminoAcids())
+          this->ConnectResidues(prev, residue);
         for (mol::AtomHandleList::iterator k = atoms_to_connect.begin(),
              e3=atoms_to_connect.end(); k!= e3; ++k) {
           this->DistanceBasedConnect(*k);