Index: src/examples/io.c
===================================================================
--- src/examples/io.c	(revision dc5376a15ff2e64a5f2ea5042812b95f826a9656)
+++ src/examples/io.c	(revision b72bad4f321cdf95d1b8160445956596cf80e191)
@@ -11,6 +11,6 @@
 // Created On       : Wed Mar  2 16:56:02 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Apr 13 23:03:14 2016
-// Update Count     : 22
+// Last Modified On : Wed Apr 27 22:45:31 2016
+// Update Count     : 26
 // 
 
@@ -52,5 +52,5 @@
 		 | sepDisable | fc | dc | ldc | sepEnable | endl		// complex without separator
 		 | sepOn | s1 | sepOff | s2 | endl						// local separator removal
-		 | s1 | "" | s2 | endl;									// C string withou separator
+		 | s1 | "" | s2 | endl;									// C string without separator
 	sout | endl;
 
Index: src/libcfa/fstream.c
===================================================================
--- src/libcfa/fstream.c	(revision dc5376a15ff2e64a5f2ea5042812b95f826a9656)
+++ src/libcfa/fstream.c	(revision b72bad4f321cdf95d1b8160445956596cf80e191)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Apr  6 17:55:27 2016
-// Update Count     : 176
+// Last Modified On : Wed Apr 27 18:20:30 2016
+// Update Count     : 187
 //
 
@@ -93,5 +93,4 @@
 int prtfmt( ofstream * os, const char fmt[], ... ) {
     va_list args;
-
     va_start( args, fmt );
     int len = vfprintf( (FILE *)(os->file), fmt, args );
@@ -103,4 +102,6 @@
 	} // if
     va_end( args );
+
+	sepReset( os );										// reset separator
 	return len;
 } // prtfmt
Index: src/libcfa/iostream.c
===================================================================
--- src/libcfa/iostream.c	(revision dc5376a15ff2e64a5f2ea5042812b95f826a9656)
+++ src/libcfa/iostream.c	(revision b72bad4f321cdf95d1b8160445956596cf80e191)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Apr  6 16:13:29 2016
-// Update Count     : 278
+// Last Modified On : Wed Apr 27 20:35:13 2016
+// Update Count     : 294
 //
 
@@ -34,5 +34,4 @@
 ostype * ?|?( ostype *os, short int si ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%hd", si );
 	return os;
@@ -42,5 +41,4 @@
 ostype * ?|?( ostype *os, unsigned short int usi ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%hu", usi );
 	return os;
@@ -50,5 +48,4 @@
 ostype * ?|?( ostype *os, int i ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%d", i );
 	return os;
@@ -58,5 +55,4 @@
 ostype * ?|?( ostype *os, unsigned int ui ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%u", ui );
 	return os;
@@ -66,5 +62,4 @@
 ostype * ?|?( ostype *os, long int li ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%ld", li );
 	return os;
@@ -74,5 +69,4 @@
 ostype * ?|?( ostype *os, unsigned long int uli ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%lu", uli );
 	return os;
@@ -82,5 +76,4 @@
 ostype * ?|?( ostype *os, long long int lli ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%lld", lli );
 	return os;
@@ -90,5 +83,4 @@
 ostype * ?|?( ostype *os, unsigned long long int ulli ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%llu", ulli );
 	return os;
@@ -98,5 +90,4 @@
 ostype * ?|?( ostype *os, float f ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%g", f );
 	return os;
@@ -106,5 +97,4 @@
 ostype * ?|?( ostype *os, double d ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%.*lg", DBL_DIG, d );
 	return os;
@@ -114,5 +104,4 @@
 ostype * ?|?( ostype *os, long double ld ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%.*Lg", LDBL_DIG, ld );
 	return os;
@@ -161,11 +150,10 @@
 		['%'] : Close, [(unsigned char)'¢'] : Close, [(unsigned char)'»'] : Close,
 		// opening-closing delimiters
-		['\''] : OpenClose, ['`'] : OpenClose, ['"'] : OpenClose,
+		[' '] : OpenClose, ['\''] : OpenClose, ['`'] : OpenClose, ['"'] : OpenClose,
 		['\f'] : OpenClose, ['\n'] : OpenClose, ['\r'] : OpenClose, ['\t'] : OpenClose, ['\v'] : OpenClose, // isspace
 	}; // mask
 
-	int len = strlen( cp );
-	// null string => no separator
-  if ( len == 0 ) { sepOff( os ); return os; }
+  if ( cp[0] == '\0' ) { sepOff( os ); return os; }		// null string => no separator
+
 	// first character IS NOT spacing or closing punctuation => add left separator
 	unsigned char ch = cp[0];							// must make unsigned
@@ -173,11 +161,15 @@
 		prtfmt( os, "%s", sepGet( os ) );
 	} // if
+
+	// if string starts line, must reset to determine open state because separator is off
+	sepReset( os );										// reset separator
+
 	// last character IS spacing or opening punctuation => turn off separator for next item
-	unsigned int posn = len - 1;
+	unsigned int len = strlen( cp ), posn = len - 1;
 	ch = cp[posn];										// must make unsigned
-	if ( mask[ ch ] == Open || mask[ ch ] == OpenClose ) {
+	if ( sepPrt( os ) && mask[ ch ] != Open && mask[ ch ] != OpenClose ) {
+		sepOn( os );
+	} else {
 		sepOff( os );
-	} else {
-		sepOn( os );
 	} // if
 	return write( os, cp, len );
@@ -187,5 +179,4 @@
 ostype * ?|?( ostype *os, const void *p ) {
 	if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) );
-	sepReset( os );
 	prtfmt( os, "%p", p );
 	return os;
Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision dc5376a15ff2e64a5f2ea5042812b95f826a9656)
+++ src/libcfa/stdlib	(revision b72bad4f321cdf95d1b8160445956596cf80e191)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Apr 21 07:55:21 2016
-// Update Count     : 95
+// Last Modified On : Wed Apr 27 22:03:29 2016
+// Update Count     : 96
 //
 
@@ -45,5 +45,5 @@
 
 forall( otype T ) T * aligned_alloc( size_t alignment );
-forall( otype T ) T * memalign( size_t alignment );
+forall( otype T ) T * memalign( size_t alignment );		// deprecated
 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment );
 
