diff --git a/src/main/org/openscience/cdk/ringsearch/FiguerasSSSRFinder.java b/src/main/org/openscience/cdk/ringsearch/FiguerasSSSRFinder.java
index <HASH>..<HASH> 100644
--- a/src/main/org/openscience/cdk/ringsearch/FiguerasSSSRFinder.java
+++ b/src/main/org/openscience/cdk/ringsearch/FiguerasSSSRFinder.java
@@ -218,10 +218,10 @@ public class FiguerasSSSRFinder {
 		List<List<IAtom>> path = new ArrayList<List<IAtom>>(OKatoms);
 		List<IAtom> intersection = new ArrayList<IAtom>();
 		List<IAtom> ring = new ArrayList<IAtom>();
-		for (int f = 0; f < OKatoms; f++)
+		for (final IAtom atom : molecule.atoms())
 		{
-			path.set(f, new ArrayList<IAtom>());
-			((List<IAtom>)molecule.getAtom(f).getProperty(PATH)).clear();
+			path.add(new ArrayList<IAtom>());
+            atom.getProperty(PATH, List.class).clear();
 		}
 		// Initialize the queue with nodes attached to rootNode
 		neighbors = molecule.getConnectedAtomsList(rootNode);
Correct addition of atoms to a list. Unlike Vector, a List does not let you use set(int, Obj) unless that index already has an item.

Change-Id: I<I>d<I>e<I>efebb<I>f<I>f<I>fb<I>