Index: tests/collections/.expect/string-ctx-manage.txt
===================================================================
--- tests/collections/.expect/string-ctx-manage.txt	(revision 0f781fb89ac90634a87242ab226c285456c417bf)
+++ tests/collections/.expect/string-ctx-manage.txt	(revision 4b3b35268036d5be3e8438aaad76482a170b2560)
@@ -1,1 +1,5 @@
+hi
+bye
+hi
+bye
 done
Index: tests/collections/string-ctx-manage.cfa
===================================================================
--- tests/collections/string-ctx-manage.cfa	(revision 0f781fb89ac90634a87242ab226c285456c417bf)
+++ tests/collections/string-ctx-manage.cfa	(revision 4b3b35268036d5be3e8438aaad76482a170b2560)
@@ -1,15 +1,31 @@
 #include <string.hfa>
 #include <string_sharectx.hfa>
+#include <string_res.hfa>
 
-// The functionality for these tests isn't written yet.
-// But its interface compiles and the cases it drives are detected.
+void baseline() {
+    string x = "hi";
 
-void failEagerCopy() {
+    string y = x; // construct y in same context, no write yet => no copy yet
+    assert( y.inner->Handle.s == x.inner->Handle.s);
+    sout | y; // hi
+
+    x = "bye";
+    y = x; // y in same context, no write yet => no copy yet
+    assert( y.inner->Handle.s == x.inner->Handle.s);
+    sout | y; // bye
+}
+
+void eagerCopy() {
     string x = "hi";
-    string_sharectx c = { NO_SHARING };
+    string_sharectx c = { NEW_SHARING };
 
-    // want: implied forced eager copy
-    // got: assertion failure, "need to implement context crossing"
-    string y = x;
+    string y = x; // construct y in different context => eager copy
+    assert( y.inner->Handle.s != x.inner->Handle.s);
+    sout | y; // hi
+
+    x = "bye";                                                     //.... Bookmark 9/30 shallow:  surprisingly this step failed
+    y = x; // y was already in different context => eager copy
+    assert( y.inner->Handle.s != x.inner->Handle.s);
+    sout | y; // bye
 }
 
@@ -26,6 +42,7 @@
 
 int main() {
+    baseline();
+    eagerCopy();
     if (showFail) {
-        failEagerCopy();
         failSoloAlloc();
     }
