Index: src/libcfa/fstream
===================================================================
--- src/libcfa/fstream	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/libcfa/fstream	(revision d3950125f9b8e14c660f3f5da742e6ad404ee9a7)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 18:11:09 2017
-// Update Count     : 104
+// Last Modified On : Sat Jul  1 16:37:53 2017
+// Update Count     : 112
 //
 
@@ -24,4 +24,5 @@
 	_Bool sepDefault;
 	_Bool sepOnOff;
+	_Bool lastSepOn;
 	const char * sepCur;
 	char separator[separateSize];
@@ -35,4 +36,5 @@
 const char * sepGetCur( ofstream * );
 void sepSetCur( ofstream *, const char * );
+_Bool lastSepOn( ofstream * );
 
 // public
Index: src/libcfa/fstream.c
===================================================================
--- src/libcfa/fstream.c	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/libcfa/fstream.c	(revision d3950125f9b8e14c660f3f5da742e6ad404ee9a7)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 18:11:11 2017
-// Update Count     : 234
+// Last Modified On : Sat Jul  1 16:37:54 2017
+// Update Count     : 242
 //
 
@@ -33,4 +33,5 @@
 	this->sepDefault = sepDefault;
 	this->sepOnOff = sepOnOff;
+	this->lastSepOn = false;
 	sepSet( this, separator );
 	sepSetCur( this, sepGet( this ) );
@@ -39,5 +40,6 @@
 
 // private
-_Bool sepPrt( ofstream * os ) { return os->sepOnOff; }
+_Bool lastSepOn( ofstream * os ) { return os->lastSepOn; }
+_Bool sepPrt( ofstream * os ) { os->lastSepOn = false; return os->sepOnOff; }
 void sepReset( ofstream * os ) { os->sepOnOff = os->sepDefault; }
 void sepReset( ofstream * os, _Bool reset ) { os->sepDefault = reset; os->sepOnOff = os->sepDefault; }
@@ -46,10 +48,11 @@
 
 // public
-void sepOn( ofstream * os ) { os->sepOnOff = 1; }
-void sepOff( ofstream * os ) { os->sepOnOff = 0; }
+void sepOn( ofstream * os ) { os->lastSepOn = true; os->sepOnOff = true; }
+void sepOff( ofstream * os ) { os->lastSepOn = false; os->sepOnOff = 0; }
 
 _Bool sepDisable( ofstream *os ) {
 	_Bool temp = os->sepDefault;
 	os->sepDefault = false;
+	os->lastSepOn = false;
 	sepReset( os );
 	return temp;
@@ -92,5 +95,5 @@
 		exit( EXIT_FAILURE );
 	} // if
-	?{}( os, file, 1, 0, " ", ", " );
+	?{}( os, file, true, false, " ", ", " );
 } // open
 
@@ -132,7 +135,7 @@
 } // fmt
 
-static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_), 1, 0, " ", ", " };
+static ofstream soutFile = { (FILE *)(&_IO_2_1_stdout_), true, false, " ", ", " };
 ofstream *sout = &soutFile;
-static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_), 1, 0, " ", ", " };
+static ofstream serrFile = { (FILE *)(&_IO_2_1_stderr_), true, false, " ", ", " };
 ofstream *serr = &serrFile;
 
Index: src/libcfa/iostream
===================================================================
--- src/libcfa/iostream	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/libcfa/iostream	(revision d3950125f9b8e14c660f3f5da742e6ad404ee9a7)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 18:08:44 2017
-// Update Count     : 105
+// Last Modified On : Sat Jul  1 16:37:52 2017
+// Update Count     : 108
 //
 
@@ -31,4 +31,5 @@
 	_Bool sepDisable( ostype * );						// set default state to off, and return previous state
 	_Bool sepEnable( ostype * );						// set default state to on, and return previous state
+	_Bool lastSepOn( ostype * );						// last manipulator is setOn (context sensitive)
 
 	const char * sepGet( ostype * );					// get separator string
Index: src/libcfa/iostream.c
===================================================================
--- src/libcfa/iostream.c	(revision fa4805fa298698201db6b7292ed9cb1cc00af9ef)
+++ src/libcfa/iostream.c	(revision d3950125f9b8e14c660f3f5da742e6ad404ee9a7)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May  8 18:24:23 2017
-// Update Count     : 369
+// Last Modified On : Sat Jul  1 16:37:51 2017
+// Update Count     : 374
 //
 
@@ -217,4 +217,5 @@
 forall( dtype ostype | ostream( ostype ) )
 ostype * endl( ostype * os ) {
+	if ( lastSepOn( os ) ) fmt( os, "%s", sepGetCur( os ) );
 	os | '\n';
 	flush( os );
