diff --git a/wcclrun/main.cpp b/wcclrun/main.cpp
index 710a81d7bc45a53a00830c342768f878cc9ce3f8..0281f0b9d86d332fa60d1b334498c57aa3a52d78 100644
--- a/wcclrun/main.cpp
+++ b/wcclrun/main.cpp
@@ -25,6 +25,7 @@ namespace {
 	bool output_orths = true;
 	bool output_variables = false;
 	bool global_numbering = false;
+	bool output_header = true;
 	bool in_sentence_numbering = true;
 }
 
@@ -203,29 +204,31 @@ int main(int argc, char** argv)
 	boost::program_options::options_description desc("Allowed options");
 	desc.add_options()
 			("tagset,t", value(&tagset_load),
-			 "Tagset to use\n")
+			 "Tagset to use")
 			("corpus,c", value(&corpora_files),
-			 "Corpus file to load (XCES)\n")
+			 "Corpus file to load (XCES)")
 			("ccl-file,C", value(&ccl_files),
-			 "CCL query file\n")
+			 "CCL query file")
 			("files,f", value(&files),
-			 "Files to load, looking at the extension to determine type\n")
+			 "Files to load, looking at the extension to determine type")
 			("corpus-from-stdin,I", value(&corpus_stdin)->zero_tokens(),
-			 "Read corpus from stdin\n")
+			 "Read corpus from stdin")
 			("quiet,q", value(&quiet)->zero_tokens(),
-			 "Suppress messages\n")
+			 "Suppress messages")
 			("first-sentence-only,1", value(&first)->zero_tokens(),
-			 "Only process first sentence\n")
+			 "Only process first sentence")
 			("tabs", value(&tabs)->zero_tokens(),
-			 "Output a tab-separated file\n")
+			 "Output a tab-separated file")
 			("local-counts,l", value(&in_sentence_numbering),
-			 "Output in-sentence token counts\n")
+			 "Output in-sentence token counts")
 			("global-counts,g", value(&global_numbering),
-			 "Output global counts\n")
+			 "Output global counts")
 			("output-orths,O", value(&output_orths),
-			 "Output token orths\n")
+			 "Output token orths")
 			("output-variables,V", value(&output_variables),
-			 "Output operator variables\n")
+			 "Output operator variables")
+			("output-header,H", value(&output_header),
+			 "Output table header")
 			("help,h", "Show help")
 			;
 	boost::program_options::variables_map vm;
@@ -245,7 +248,7 @@ int main(int argc, char** argv)
 	if (vm.count("help")) {
 		std::cerr << "Usage " << argv[0] << " [OPTIONS] FILES\n"
 			<< "Files ending with .xml are treated as corpora, otherwise \n"
-			<< "as CCL files. Use - to read corpus from stdin (as with -I)";
+			<< "as CCL files. Use - to read corpus from stdin (as with -I)\n";
 		std::cout << desc << "\n";
 		return 1;
 	}
@@ -259,7 +262,10 @@ int main(int argc, char** argv)
 			ccl_files.push_back(f);
 		}
 	}
-
+	if (corpora_files.empty() || (ccl_files.empty() && !output_orths)) {
+		std::cerr << "Nothing to do, try " << argv[0] << " -h\n";
+		return 2;
+	}
 	try {
 		const Corpus2::Tagset& tagset = Corpus2::get_named_tagset(tagset_load);
 		Runner runner(tagset);