diff --git a/impl/src/main/java/org/glassfish/json/JsonGeneratorImpl.java b/impl/src/main/java/org/glassfish/json/JsonGeneratorImpl.java
index f3dcc08..67c8e33 100644
--- a/impl/src/main/java/org/glassfish/json/JsonGeneratorImpl.java
+++ b/impl/src/main/java/org/glassfish/json/JsonGeneratorImpl.java
@@ -487,6 +487,10 @@
         currentContext.first = false;
     }
 
+    protected boolean inNone() {
+        return currentContext.scope == Scope.IN_NONE;
+    }
+
     boolean isCommaAllowed() {
         return !currentContext.first && currentContext.scope != Scope.IN_FIELD;
     }
diff --git a/impl/src/main/java/org/glassfish/json/JsonPrettyGeneratorImpl.java b/impl/src/main/java/org/glassfish/json/JsonPrettyGeneratorImpl.java
index ec6865f..f1c28a2 100644
--- a/impl/src/main/java/org/glassfish/json/JsonPrettyGeneratorImpl.java
+++ b/impl/src/main/java/org/glassfish/json/JsonPrettyGeneratorImpl.java
@@ -88,7 +88,7 @@
     @Override
     protected void writeComma() {
         super.writeComma();
-        if (isCommaAllowed()) {
+        if (isCommaAllowed() && !inNone()) {
             writeChar('\n');
             writeIndent();
         }
diff --git a/impl/src/test/java/org/glassfish/json/tests/JsonGeneratorTest.java b/impl/src/test/java/org/glassfish/json/tests/JsonGeneratorTest.java
index 5f87e07..43745e0 100644
--- a/impl/src/test/java/org/glassfish/json/tests/JsonGeneratorTest.java
+++ b/impl/src/test/java/org/glassfish/json/tests/JsonGeneratorTest.java
@@ -225,7 +225,7 @@
         generator.close();
         writer.close();
 
-        BufferedReader reader = new BufferedReader(new StringReader(writer.toString().trim()));
+        BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
         int numberOfLines = 0;
         String line;
         while ((line = reader.readLine()) != null) {
