diff --git a/swig/tokenwriter.i b/swig/tokenwriter.i
index 88743d104d4ceaba362126f6fac0e65cad3759ae..829fdbec54dd99387e00dfc16d453463a6476d89 100644
--- a/swig/tokenwriter.i
+++ b/swig/tokenwriter.i
@@ -69,6 +69,19 @@ namespace Corpus2 {
   };
 
 %extend TokenWriter {
+    %exception {
+      try {
+        $action
+      } catch (PwrNlp::PwrNlpError &e) {
+        PyErr_SetString(PyExc_IndexError, e.info().c_str());
+        return NULL;
+      }
+    }
+	%feature("autodoc", "1");
+	static TokenWriterPtr create_stdout_writer(
+			const std::string& class_id_params, const Tagset& tagset) {
+		return Corpus2::TokenWriter::create_stream_writer(class_id_params, std::cout, tagset);
+	}
 
 	void write_token(boost::shared_ptr<Corpus2::Token> t) {
 		self->write_token(*t);