diff --git a/tool/sdg/src/main/java/org/openscience/cdk/layout/StructureDiagramGenerator.java b/tool/sdg/src/main/java/org/openscience/cdk/layout/StructureDiagramGenerator.java index 0c7c1a145c4..4191372ce2b 100644 --- a/tool/sdg/src/main/java/org/openscience/cdk/layout/StructureDiagramGenerator.java +++ b/tool/sdg/src/main/java/org/openscience/cdk/layout/StructureDiagramGenerator.java @@ -2135,12 +2135,19 @@ private void placePositionalVariation(IAtomContainer mol) { newvisit.clear(); for (Integer idx : visited) { IAtom visitedAtom = mol.getAtom(idx); + if (e.getKey().contains(visitedAtom) || e.getValue().contains(visitedAtom)) + continue; for (Map.Entry, IAtom> e2 : mapping.entries()) { if (e2.getKey().contains(visitedAtom)) { int other = idxs.get(e2.getValue()); if (!visited.contains(other) && newvisit.add(other)) { visit(newvisit, adjlist, other); } + } else if (e2.getValue() == visitedAtom) { + int other = idxs.get(e2.getKey().iterator().next()); + if (!visited.contains(other) && newvisit.add(other)) { + visit(newvisit, adjlist, other); + } } } }