diff --git a/ui-modules/blueprint-composer/app/components/spec-editor/spec-editor.directive.js b/ui-modules/blueprint-composer/app/components/spec-editor/spec-editor.directive.js
index 9c18129..ecfa249 100644
--- a/ui-modules/blueprint-composer/app/components/spec-editor/spec-editor.directive.js
+++ b/ui-modules/blueprint-composer/app/components/spec-editor/spec-editor.directive.js
@@ -699,7 +699,24 @@
                     // errors don't get stringified because model value was not parsed
                     return value;
                 }
-                return JSON.stringify(value);
+                // if current local value gives same result then don't change it
+                // (don't interrupt user's flow, and respect their spacing, at least until
+                // they click away; ultimately we would like access to the parse tree,
+                // so we could take the text as entered exactly (maybe stripping initial whitespace),
+                // also supporting yaml and comments, but that is a bigger task!)
+                if (scope.config && typeof scope.config[key] === 'string') {
+                    try {
+                        if (JSON.stringify(JSON.parse(scope.config[key]))===JSON.stringify(value)) {
+                            return scope.config[key];
+                        }
+                    } catch (ignoredError) {
+                        console.log("Couldn't handle entered JSON", scope.config[key], ignoredError);
+                    }
+                }
+                // otherwise pretty print it, so they get decent multiline on first load and
+                // if they click off the entity then back on to the entity and this field
+                // (we'd like to respect what they actually typed but that needs the parse tree, as above)
+                return JSON.stringify(value, null, "  ");
             }
 
             // else treat as value, with array/map special
@@ -737,8 +754,8 @@
                 scope.state.config.codeModeActive[key] = true;
                 // and the widget mode updated to be 'manual'
                 scope.getConfigWidgetMode(definition, value);
-
-                return JSON.stringify(value);
+                // and rerun this method so we get it prettified if appropriate
+                return getLocalConfigValueFromModelValue(key, value);
             }
 
             // if boolean, return as primitive type
