Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 0a2e1c05231e823bd3713035bfed560cc3e83691)
+++ libcfa/src/iostream.cfa	(revision dab31d0b9cadc6a37fa26253a77e66ec61978499)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Apr 25 17:24:26 2020
-// Update Count     : 974
+// Last Modified On : Sun Apr 26 11:13:25 2020
+// Update Count     : 979
 //
 
@@ -565,5 +565,5 @@
 				fmt2.flags.pad0 = fmt2.flags.nobsdp = true;	\
 				if ( f.base == 'b' | f.base == 'B' ) { \
-					if ( fmt.flags.pc && fmt.pc > 64 ) fmt.pc -= 64; \
+					if ( fmt.flags.pc && fmt.pc > 64 ) fmt.pc -= 64; else { fmt.flags.pc = false; fmt.pc = 0; } \
 					if ( fmt.flags.left ) { \
 						fmt2.wd = fmt.wd; \
@@ -584,11 +584,10 @@
 						printf( "left %d %d %x\n", fmt.wd, fmt.pc, fmt.all ); \
 					} else { \
+						if ( fmt.wd > 64 ) fmt.wd -= 64; \
+						if ( ! fmt.flags.nobsdp && fmt.pc < fmt.wd ) fmt.wd -= 1; \
 						fmt2.wd = 64; \
-						if ( fmt.wd > 64 ) fmt.wd -= 64; \
-						printf( "left %d %d %x\n", f.wd, f.pc, f.all ); \
-						printf( "left %d %d %x\n", fmt.wd, fmt.pc, fmt.all ); \
+						/* printf( "R %llo %llo %llo %llo %d %d '%c' %x\n", msig, lsig, fmt.val, fmt2.val, fmt.wd, fmt.pc, fmt.base, fmt.all ); */ \
 					} /* if */ \
-					fmt2.pc = 64; fmt2.flags.pc = true;	\
-					printf( "left %d %d %x\n", fmt2.wd, fmt2.pc, fmt2.all ); \
+					/* printf( "\nC %llo %d %d '%c' %x\n", fmt2.val, fmt2.wd, fmt2.pc, fmt2.base, fmt2.all ); */ \
 					(ostype &)(os | fmt | "" | fmt2); \
 				} else if ( f.base == 'o' ) { \
@@ -599,5 +598,5 @@
 						fmt.flags.left = false; \
 						fmt.wd = 0; \
-						if ( fmt2.val > 1 && fmt.flags.pc && fmt.pc > 0 ) fmt.pc -= 1; \
+						/* if ( fmt2.val > 1 && fmt.flags.pc && fmt.pc > 0 ) fmt.pc -= 1; */ \
 						/* printf( "L %llo %llo %llo %llo %d %d '%c' %x\n", msig, lsig, fmt.val, fmt2.val, fmt.wd, fmt.pc, fmt.base, fmt.all ); */ \
 						(ostype &)(os | fmt | "" | fmt2); \
@@ -606,5 +605,6 @@
 						int msigd = ceiling( high1( fmt.val ), 3 ) + 1; \
 						fmt2.wd = f.wd - (fmt.pc > msigd ? fmt.pc : msigd) - 1; \
-						if ( fmt2.wd < 0 ) fmt2.wd = 21; \
+						if ( fmt2.wd < 21 ) fmt2.wd = 21; \
+						fmt2.flags.pc = true; fmt2.pc = 21; \
 						if ( ! fmt.flags.nobsdp && fmt.pc < fmt.wd ) fmt.wd -= 1; \
 					} else { \
