diff --git a/libcorpus2/io/cclwriter.cpp b/libcorpus2/io/cclwriter.cpp
index 35f8f25fe76c7b8714beeba6287f853d37f8c9f2..799b339bcb0630f85a77397e3664e3f897e27f99 100644
--- a/libcorpus2/io/cclwriter.cpp
+++ b/libcorpus2/io/cclwriter.cpp
@@ -21,6 +21,15 @@ CclWriter::~CclWriter()
 }
 
 void CclWriter::write_sentence(const Sentence& s)
+{
+	paragraph_head();
+	if (use_indent_) indent_more();
+	write_sentence_int(s);
+	if (use_indent_) indent_less();
+	osi() << "</chunk>\n";
+}
+
+void CclWriter::write_sentence_int(const Sentence &s)
 {
 	const AnnotatedSentence* ann = dynamic_cast<const AnnotatedSentence*>(&s);
 	osi() << "<sentence>\n";
@@ -46,8 +55,7 @@ void CclWriter::write_sentence(const Sentence& s)
 			XmlWriter::write_token(*t);
 		}
 	}
-	if (use_indent_) indent_less();
-	osi() << "</sentence>\n";
+	if (use_indent_) indent_less();	osi() << "</sentence>\n";
 }
 
 void CclWriter::write_chunk(const Chunk &c)
@@ -55,7 +63,7 @@ void CclWriter::write_chunk(const Chunk &c)
 	paragraph_head(c);
 	if (use_indent_) indent_more();
 	foreach (const Sentence::ConstPtr& s, c.sentences()) {
-		write_sentence(*s);
+		write_sentence_int(*s);
 	}
 	if (use_indent_) indent_less();
 	osi() << "</chunk>\n";
diff --git a/libcorpus2/io/cclwriter.h b/libcorpus2/io/cclwriter.h
index c9acb1196c23fc123e08d57c50399fe064144715..b3bf42b219c0b4e19eac15aa579f8c157dcb049f 100644
--- a/libcorpus2/io/cclwriter.h
+++ b/libcorpus2/io/cclwriter.h
@@ -20,6 +20,8 @@ public:
 	static bool registered;
 
 protected:
+	void write_sentence_int(const Sentence &s);
+
 	void do_header();
 
 	void do_footer();