diff --git a/wcclrules/main.cpp b/wcclrules/main.cpp
index da88578e7b00b24529041fb04cfbe54cc3f57cb2..20069686f265bb4d768b592d7880acf1cb03332b 100644
--- a/wcclrules/main.cpp
+++ b/wcclrules/main.cpp
@@ -72,7 +72,11 @@ void do_stream(boost::shared_ptr<Corpus2::TokenWriter> writer, const Corpus2::Ta
 	Corpus2::XcesReader xr(tagset, is);
 	Corpus2::Sentence::Ptr s;
 	while ((s = xr.get_next_sentence())) {
-		rules.execute_once(s);
+		if (opts.until_done) {
+			rules.execute_until_done(s, opts.until_done_iterations);
+		} else {
+			rules.execute_once(s);
+		}
 		writer->write_sentence(*s);
 		if (opts.first) break;
 	}