diff --git a/atrim/src/TrimNFA.cpp b/atrim/src/TrimNFA.cpp
index 1d8badc7b7bff5facde57b62864e4aebe46697be..bc3c1b46c02c37907abfc1b2b2f6702849d9c72b 100644
--- a/atrim/src/TrimNFA.cpp
+++ b/atrim/src/TrimNFA.cpp
@@ -52,11 +52,6 @@ const FSM TrimNFA::remove( void )
 
 const set<State> TrimNFA::findReachableStates( void ) const
 {
-    map<State, set<TransitionFSM>> transitionsBySourceState;
-
-    for( auto const & t : m_origFSM.getTransitions( ) )
-        transitionsBySourceState[ t.getFrom() ].insert( t );
-
     set<State> qprev, qcurr;
     qcurr.insert( * m_origFSM.getInitialStates().begin() );
 
@@ -65,7 +60,7 @@ const set<State> TrimNFA::findReachableStates( void ) const
         qprev = qcurr;
 
         for( auto const & p : qprev )
-            for( auto const & transition : transitionsBySourceState[ p ] )
+            for( auto const & transition : m_origFSM.getTransitionsFromState( p ) )
                 qcurr.insert( transition.getTo() );
     }
     while( qcurr != qprev );