diff --git a/alib2data/src/std/compare.hpp b/alib2data/src/std/compare.hpp
index 0f4e188f56ec2d71c9998442ab960f0aab3f84ab..7a22279d586428265b91681895150e71e11a0ffd 100644
--- a/alib2data/src/std/compare.hpp
+++ b/alib2data/src/std/compare.hpp
@@ -122,9 +122,11 @@ struct compare<unordered_map<T, R>> {
 		if(first.size() < second.size()) return -1;
 		if(first.size() > second.size()) return 1;
 
-		compare<std::pair<T, R>> comp;
-		for(auto iterF = first.begin(), iterS = second.begin(); iterF != first.end(); iterF++, iterS++) {
-			int res = comp(*iterF, *iterS);
+		compare<R> comp;
+		for(auto iter = first.begin(); iter != first.end(); iter++) {
+			auto search = second.find(iter->first);
+			if(search == second.end()) return -1;
+			int res = comp(iter->second, search->second);
 			if(res != 0) return res;
 		}
 		return 0;