Index: tests/collections/.expect/string-istream-manip.txt
===================================================================
--- tests/collections/.expect/string-istream-manip.txt	(revision 2bf46a5f6449a84ac68d5d0f9d73906608a06c99)
+++ tests/collections/.expect/string-istream-manip.txt	(revision 37ceccbccec1df04d3e17e8c2deb88d47c942720)
@@ -69,5 +69,5 @@
 13 wwwwwwww
 14 cccc
-15 
+15 q
 1 yyyyyyyyyyyyyyyyyyyy
 2 abcxxx
@@ -84,3 +84,3 @@
 13 wwwwwwww
 14 cccc
-15 
+15 q
Index: tests/collections/string-istream-manip.cfa
===================================================================
--- tests/collections/string-istream-manip.cfa	(revision 2bf46a5f6449a84ac68d5d0f9d73906608a06c99)
+++ tests/collections/string-istream-manip.cfa	(revision 37ceccbccec1df04d3e17e8c2deb88d47c942720)
@@ -38,5 +38,8 @@
         void echoTillX(const char * casename) {
             string s;
-            do {
+            // loop assumes behaviour not tested until main-case #15:
+            // on reading nothing, the prior string value is left alone
+            do {
+                s = "";
                 forceStringHeapFreeSpaceTo(9);
                 sin | s;
@@ -54,4 +57,5 @@
             string s;
             do {
+                s = "";
                 sin | plainjane( s );
                 sout | casename | s;
@@ -68,4 +72,5 @@
             string_res s;
             do {
+                s = "";
                 sin | plainjane( s );
                 sout | casename | s;
@@ -82,4 +87,5 @@
             string s;
             do {
+                s = "";
                 sin | skip("-\n");
                 sin | incl( ".:|# x", s );
@@ -97,4 +103,5 @@
             string s;
             do {
+                s = "";
                 sin | skip("-\n");
                 sin | excl( "-\n", s );
@@ -113,4 +120,5 @@
             string s;
             do {
+                s = "";
                 sin | getline( s );
                 sout | casename | s;
@@ -127,4 +135,5 @@
             string s;
             do {
+                s = "";
                 sin | getline( s, '@' );
                 sout | casename | s;
Index: tests/io/.expect/manipulatorsInput.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.arm64.txt	(revision 2bf46a5f6449a84ac68d5d0f9d73906608a06c99)
+++ tests/io/.expect/manipulatorsInput.arm64.txt	(revision 37ceccbccec1df04d3e17e8c2deb88d47c942720)
@@ -34,5 +34,5 @@
 13 wwwwwwww
 14 cccc
-15
+15 q
 a
 a
Index: tests/io/.expect/manipulatorsInput.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.x64.txt	(revision 2bf46a5f6449a84ac68d5d0f9d73906608a06c99)
+++ tests/io/.expect/manipulatorsInput.x64.txt	(revision 37ceccbccec1df04d3e17e8c2deb88d47c942720)
@@ -34,5 +34,5 @@
 13 wwwwwwww
 14 cccc
-15
+15 q
 a
 a
Index: tests/io/.expect/manipulatorsInput.x86.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.x86.txt	(revision 2bf46a5f6449a84ac68d5d0f9d73906608a06c99)
+++ tests/io/.expect/manipulatorsInput.x86.txt	(revision 37ceccbccec1df04d3e17e8c2deb88d47c942720)
@@ -34,5 +34,5 @@
 13 wwwwwwww
 14 cccc
-15
+15 q
 a
 a
