diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp
index 884922c69848f8bb1b300fbae7ffc432d17333ea..33b945c80547e4025385b6a89b666cf84c6d6b48 100644
--- a/src/libs/qmljs/qmljsreformatter.cpp
+++ b/src/libs/qmljs/qmljsreformatter.cpp
@@ -667,7 +667,7 @@ protected:
             out(": ", ast->colonToken);
             accept(it->value);
             if (it->next) {
-                out(ast->commaToken);
+                out(",", ast->commaToken); // always invalid?
                 newLine();
             }
         }
@@ -1117,8 +1117,6 @@ protected:
 
     virtual bool visit(FunctionExpression *ast)
     {
-        if (!firstOnLine())
-            newLine();
         out("function ", ast->functionToken);
         if (!ast->name.isNull())
             out(ast->identifierToken);
diff --git a/tests/auto/qml/reformatter/jssyntax.js b/tests/auto/qml/reformatter/jssyntax.js
index 17be1401c93e317820c3be6f31ce9903221f87d0..5ef1a2adcd62bec0c30a9d39f37281fb91e6bb78 100644
--- a/tests/auto/qml/reformatter/jssyntax.js
+++ b/tests/auto/qml/reformatter/jssyntax.js
@@ -6,8 +6,7 @@ function foo(a, b) {
     x += 4
 }
 
-var foo =
-        function (a, b) {}
+var foo = function (a, b) {}
 
 while (true) {
     for (var a = 1; a < 5; ++a) {
diff --git a/tests/auto/qml/reformatter/objectliteral.js b/tests/auto/qml/reformatter/objectliteral.js
new file mode 100644
index 0000000000000000000000000000000000000000..478d550573cbd9fcbe17b02e7a20047335459f29
--- /dev/null
+++ b/tests/auto/qml/reformatter/objectliteral.js
@@ -0,0 +1,12 @@
+var x = {
+    x: 12,
+    y: {
+        x: 12,
+        y: "abc",
+        z: function (x) {
+               return a
+           },
+        abc: 15
+    },
+    z: 12
+}
diff --git a/tests/auto/qml/reformatter/tst_reformatter.cpp b/tests/auto/qml/reformatter/tst_reformatter.cpp
index 91fba3d10634421407f647bd65bb7142c0c09907..6422995cde5df20cabe61dc7004678909d83c861 100644
--- a/tests/auto/qml/reformatter/tst_reformatter.cpp
+++ b/tests/auto/qml/reformatter/tst_reformatter.cpp
@@ -81,7 +81,7 @@ void tst_Reformatter::test()
 {
     QFETCH(QString, path);
 
-    Document::Ptr doc = Document::create(path, Document::guessLanguageFromSuffix(path));
+    Document::MutablePtr doc = Document::create(path, Document::guessLanguageFromSuffix(path));
     QFile file(doc->fileName());
     file.open(QFile::ReadOnly | QFile::Text);
     QString source = QString::fromUtf8(file.readAll());