diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
index ea9c065ff83ef3e6b8ce7552ad3031a5638a3c7b..b757f4e103f690da35cd01f283dd65c7879636b0 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
@@ -65,7 +65,7 @@ void ret(const DefaultStateType& state, const DefaultSymbolType& pdaSymbol, cons
 
 		const DefaultStateType& q = std::get<0>(transition.first);
 		for(const auto& to : transition.second) {
-			const DefaultStateType q1 = to.first;
+			const DefaultStateType& q1 = to.first;
 			const DefaultSymbolType& gamma = to.second;
 
 			for(const auto& entry : S) {
@@ -159,14 +159,14 @@ void local(const DefaultStateType& state, const std::variant<DefaultEpsilonType,
 	std::set<std::pair<DefaultStateType, DefaultStateType>> S1;
 
 	for(const auto& entry : S) {
-		DefaultStateType q = entry.first;
-		DefaultStateType q2 = entry.second;
+		const DefaultStateType & q = entry.first;
+		const DefaultStateType & q2 = entry.second;
 		for(const auto& transition : nondeterministic.getLocalTransitions()) {
 			if(q2 != transition.first.first) continue;
 			if(input != transition.first.second) continue;
 
 			for(const auto& to : transition.second) {
-				DefaultStateType q1 = to;
+				const DefaultStateType & q1 = to;
 
 				S1.insert(std::make_pair(q, q1));
 			}
diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
index 031355d25900094cd2f8dad44363e30b837e46af..15493522c4994e12b963789fe3b23eb9fa5c9823 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx
@@ -57,7 +57,7 @@ void ret(const DefaultStateType& state, const DefaultSymbolType& pdaSymbol, cons
 
 		const DefaultStateType& q = std::get<0>(transition.first);
 		for(const auto& to : transition.second) {
-			const DefaultStateType q1 = to.first;
+			const DefaultStateType& q1 = to.first;
 			const DefaultSymbolType& gamma = to.second;
 
 			for(const auto& entry : S) {
@@ -137,14 +137,14 @@ void local(const DefaultStateType& state, const DefaultSymbolType& input, const
 	std::set<std::pair<DefaultStateType, DefaultStateType>> S1;
 
 	for(const auto& entry : S) {
-		DefaultStateType q = entry.first;
-		DefaultStateType q2 = entry.second;
+		const DefaultStateType & q = entry.first;
+		const DefaultStateType & q2 = entry.second;
 		for(const auto& transition : nondeterministic.getLocalTransitions()) {
 			if(q2 != transition.first.first) continue;
 			if(input != transition.first.second) continue;
 
 			for(const auto& to : transition.second) {
-				DefaultStateType q1 = to;
+				const DefaultStateType & q1 = to;
 
 				S1.insert(std::make_pair(q, q1));
 			}