diff --git a/modules/conop/src/compound_lib_base.cc b/modules/conop/src/compound_lib_base.cc
index 708c630bbc107af4032711ebb9b84204fb2f668a..7fbb5520de05811568739c544faeb4402c976aef 100644
--- a/modules/conop/src/compound_lib_base.cc
+++ b/modules/conop/src/compound_lib_base.cc
@@ -5,23 +5,20 @@ namespace ost { namespace conop {
 bool CompoundLibBase::IsResidueComplete(const ost::mol::ResidueHandle& res, bool check_hydrogens, Compound::Dialect dialect) const{
 
   CompoundPtr compound = this->FindCompound(res.GetName(), dialect);
-
   AtomSpecList a_spec = compound->GetAtomSpecs();
 
   for(AtomSpecList::const_iterator it=a_spec.begin(); it!=a_spec.end();++it){
-    if(it->element=="H" || it->element=="D"){
-      if(check_hydrogens){
-        if(!res.FindAtom(it->name).IsValid()){
-          return false;
-        }
-      }
-    }
-    else{
-      if(!res.FindAtom(it->name).IsValid()){
-        return false;
-      }
-    }
+
+    if (it->is_leaving) continue;
+
+    if((it->element=="H" || it->element=="D") && (!check_hydrogens)) continue;
+
+    if(res.FindAtom(it->name).IsValid() || res.FindAtom(it->alt_name)) continue;
+
+    return false; 
+
   }
+
   return true;
 }