diff --git a/wccl-apps/wccl-run.cpp b/wccl-apps/wccl-run.cpp
index 723aa9c774045d84087750bb6d068c00b50a560a..4346b0d1e77dd1169f6e7e4fd46e6d2b48eb5a2f 100644
--- a/wccl-apps/wccl-run.cpp
+++ b/wccl-apps/wccl-run.cpp
@@ -310,7 +310,7 @@ void Runner::run(boost::shared_ptr<Corpus2::TokenReader> reader, bool first)
 		if (aggregate_output_) {
 			want_header_ = false;
 		}
-		if (!outputs.empty() && !aggregate_output_) {
+		if (!outputs.empty() && (tabs ||!aggregate_output_)) {
 			output_tabular(outputs);
 			outputs.clear();
 		}
@@ -318,7 +318,7 @@ void Runner::run(boost::shared_ptr<Corpus2::TokenReader> reader, bool first)
 			timer.check_slice();
 		}
 		if (!filter_op_) {
-			if (!aggregate_output_) {
+			if (tabs || !aggregate_output_) {
 				std::cout << "\n";
 			} else {
 				outputs.resize(outputs.size() + 1);
@@ -326,7 +326,7 @@ void Runner::run(boost::shared_ptr<Corpus2::TokenReader> reader, bool first)
 		}
 		if (first) break;
 	}
-	if (!outputs.empty() && aggregate_output_) {
+	if (!outputs.empty()) {
 		output_tabular(outputs);
 	}
 }
@@ -382,7 +382,7 @@ int main(int argc, char** argv)
 			("filter-operator,F", value(&filter_op_name),
 			 "Filter operator name")
 			("filter-value", value(&filter_op_value)->default_value("True"),
-			 "Filter operator expected valye")
+			 "Filter operator expected value")
 			("aggregate-output,A", value(&aggregate),
 			 "Aggregate output (prettier, slower)")
 			("progress,p", value(&progress)->zero_tokens(),