diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc
index 49615d9d6..175e8e112 100644
--- a/passes/opt/opt_clean.cc
+++ b/passes/opt/opt_clean.cc
@@ -177,7 +177,7 @@ bool compare_signals(RTLIL::SigBit &s1, RTLIL::SigBit &s2, SigPool &regs, SigPoo
 	if (attrs1 != attrs2)
 		return attrs2 > attrs1;
 
-	return w2->name < w1->name;
+	return strcmp(w2->name.c_str(), w1->name.c_str()) < 0;
 }
 
 bool check_public_name(RTLIL::IdString id)