diff --git a/alib2algo/src/automaton/properties/EpsilonClosure.cpp b/alib2algo/src/automaton/properties/EpsilonClosure.cpp
index b91b08d470cf3b64a12d9acc6b2334f9a435ef98..c5b0717d008d45398ed305e779503df398bdd771 100644
--- a/alib2algo/src/automaton/properties/EpsilonClosure.cpp
+++ b/alib2algo/src/automaton/properties/EpsilonClosure.cpp
@@ -43,8 +43,8 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Epsi
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getTransitions( ) )
-			if( transition.first.second.is<string::Epsilon>() && transition.first.first == p)
+		for( const auto & transition : fsm.getTransitionsFromState( p ) )
+			if( transition.first.second.is<string::Epsilon>() )
 				for (const auto & to : transition.second )
 					if( visited [ to ] == false )
 						queue.push( to );
@@ -95,8 +95,8 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Exte
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getTransitions( ) )
-			if( transition.first.first == p && regexp::properties::RegExpEpsilon::languageContainsEpsilon( transition.first.second ) )
+		for( const auto & transition : fsm.getTransitionsFromState( p ) )
+			if( regexp::properties::RegExpEpsilon::languageContainsEpsilon( transition.first.second ) )
 				for (const auto & to : transition.second )
 					if( visited [ to ] == false )
 						queue.push( to );
@@ -123,8 +123,8 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Comp
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getTransitions( ) )
-			if( transition.first.first == p && transition.first.second.getContent().size() == 0 )
+		for( const auto & transition : fsm.getTransitionsFromState( p ) )
+			if( transition.first.second.getContent().size() == 0 )
 				for (const auto & to : transition.second )
 					if( visited [ to ] == false )
 						queue.push( to );