diff --git a/base/core/src/main/java/org/openscience/cdk/atomtype/CDKAtomTypeMatcher.java b/base/core/src/main/java/org/openscience/cdk/atomtype/CDKAtomTypeMatcher.java index db973cfadce..070dc0fbf1a 100755 --- a/base/core/src/main/java/org/openscience/cdk/atomtype/CDKAtomTypeMatcher.java +++ b/base/core/src/main/java/org/openscience/cdk/atomtype/CDKAtomTypeMatcher.java @@ -2511,8 +2511,13 @@ private boolean isAcceptable(IAtom atom, IAtomContainer container, IAtomType typ } // confirm correct valency - if (type.getValency() != CDKConstants.UNSET && container.getBondOrderSum(atom) > type.getValency()) - return false; + if (type.getValency() != CDKConstants.UNSET) { + double valence = container.getBondOrderSum(atom); + if (atom.getImplicitHydrogenCount() != 0) + valence += atom.getImplicitHydrogenCount(); + if (valence > type.getValency()) + return false; + } // confirm correct formal charge if (atom.getFormalCharge() != CDKConstants.UNSET && !atom.getFormalCharge().equals(type.getFormalCharge()))