diff --git a/mode/xml/xml.js b/mode/xml/xml.js
index b8c42979768d1dc9508c13cf158a593c68f086bc..3248c454d177632ad8585844b5eb9798f48fda6c 100644
--- a/mode/xml/xml.js
+++ b/mode/xml/xml.js
@@ -321,7 +321,10 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
       var context = state.context;
       // Indent multi-line strings (e.g. css).
       if (state.tokenize.isInAttribute) {
-        return state.stringStartCol + 1;
+        if (state.tagStart == state.indented)
+          return state.stringStartCol + 1;
+        else
+          return state.indented + indentUnit;
       }
       if (context && context.noIndent) return CodeMirror.Pass;
       if (state.tokenize != inTag && state.tokenize != inText)