diff --git a/tests/datarule.cpp b/tests/datarule.cpp
index ac00881fda8ef570ac03ee2df7429b5c80723aef..43c6e3e092385c828d8110ca45d788398d7126fe 100644
--- a/tests/datarule.cpp
+++ b/tests/datarule.cpp
@@ -68,12 +68,12 @@ void dump_lexemes(const std::set<Corpus2::Lexeme>& lex, std::set<Corpus2::Lexeme
 	std::set<Corpus2::Lexeme>::const_iterator i = lex.begin();
 	std::set<Corpus2::Lexeme>::const_iterator ei = expected_lex.begin();
 	while (i != lex.end() && ei != expected_lex.end()) {
-		if (*i > *ei) {
+		if (*i < *ei) {
 			std::cerr << "EXTRA:   " << i->lemma_utf8() << "\t" << tagset.tag_to_string(i->tag()) << "\n";
-			++ei;
-		} else if (*i < *ei) {
-			std::cerr << "MISSING: " << ei->lemma_utf8() << "\t" << tagset.tag_to_string(ei->tag()) << "\n";
 			++i;
+		} else if (*i > *ei) {
+			std::cerr << "MISSING: " << ei->lemma_utf8() << "\t" << tagset.tag_to_string(ei->tag()) << "\n";
+			++ei;
 		} else if (*i == *ei) {
 			std::cerr << "OK:      " << i->lemma_utf8() << "\t" << tagset.tag_to_string(i->tag()) << "\n";
 			++i;