Index: generic/nsf.c =================================================================== diff -u -rcd33e8cefca1d52063ebcb6689e46527bb94e33d -r74b7a4066526ff5f5a8080ed907f71c9ed5c7700 --- generic/nsf.c (.../nsf.c) (revision cd33e8cefca1d52063ebcb6689e46527bb94e33d) +++ generic/nsf.c (.../nsf.c) (revision 74b7a4066526ff5f5a8080ed907f71c9ed5c7700) @@ -6066,23 +6066,25 @@ /* * Found the element, append to it */ - /* fprintf(stderr, "TclObjListAdd: insert %s equal %s\n", keyString, eltString);*/ + /* fprintf(stderr, "TclObjListAdd: insert %s/%s equal, append to %s\n", + keyString, ObjStr(value), ObjStr(elt->payload));*/ Tcl_ListObjAppendElement(interp, elt->payload, value); return; } if (strcmp(keyString, eltString) < 0) { /* * Element not found, insert new before as a new entry. */ - /* fprintf(stderr, "TclObjListAdd: insert %s before %s\n", keyString, eltString);*/ - TclObjListNewElement(prevPtr, key, value); + /*fprintf(stderr, "TclObjListAdd: insert %s/%s before %s isshared %d\n", + keyString, ObjStr(value), eltString, Tcl_IsShared(key));*/ + TclObjListNewElement(prevPtr, key, Tcl_IsShared(value) ? Tcl_DuplicateObj(value) : value); return; } } /* * Element not found, insert new as last entry. */ - /* fprintf(stderr, "TclObjListAdd: insert last %s\n", keyString); */ + /* fprintf(stderr, "TclObjListAdd: insert last %s value %s\n", keyString, ObjStr(value)); */ TclObjListNewElement(prevPtr, key, Tcl_NewListObj(1, &value)); return;