diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidator.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidator.java
index f901d1c..a4bd670 100644
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidator.java
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidator.java
@@ -33,8 +33,15 @@ class NameValidator extends DefaultValidator {
 
     private final Set<String> prefixes;
 
+    private final boolean allowOtherWhitespaceChars;
+
     NameValidator(Set<String> prefixes) {
+        this(prefixes, false);
+    }
+
+    NameValidator(Set<String> prefixes, boolean allowOtherWhitespaceChars) {
         this.prefixes = prefixes;
+        this.allowOtherWhitespaceChars = allowOtherWhitespaceChars;
     }
 
     protected void checkValidName(String name) throws CommitFailedException {
@@ -63,7 +70,7 @@ class NameValidator extends DefaultValidator {
             }
         }
 
-        if (!Namespaces.isValidLocalName(local)) {
+        if (!Namespaces.isValidLocalName(local, allowOtherWhitespaceChars)) {
             throw new CommitFailedException(
                     CommitFailedException.NAME, 3, "Invalid name: " + name);
         }
diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
index 2d82d6f..79239de 100644
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
@@ -16,8 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.name;
 
+import java.util.Map;
+
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
 import org.apache.jackrabbit.oak.spi.commit.Validator;
@@ -35,10 +40,21 @@ import static org.apache.jackrabbit.oak.plugins.name.NamespaceConstants.REP_PREF
  * as any name values are syntactically valid and that any namespace prefixes
  * are properly registered.
  */
-@Component
+@Component(metatype = true, label = "Apache Jackrabbit Oak NameValidatorProvider")
 @Service(EditorProvider.class)
 public class NameValidatorProvider extends ValidatorProvider {
 
+    private static final boolean PROP_ALLOW_NON_SPACE_DEFAULT = false;
+    @Property(
+            boolValue = PROP_ALLOW_NON_SPACE_DEFAULT,
+            label = "Non space whitespace chars",
+            description = "When enabled names with Whitespace other than SP (U+0020) would be allowed. " +
+                    "By default such names are not allowed and its recommended that this setting is not enabled"
+    )
+    private static final String PROP_ALLOW_NON_SPACE = "allowOtherWhitespaceChars";
+
+    private boolean allowOtherWhitespaceChars;
+
     @Override
     public Validator getRootValidator(
             NodeState before, NodeState after, CommitInfo info) {
@@ -46,7 +62,13 @@ public class NameValidatorProvider extends ValidatorProvider {
                 .getChildNode(JCR_SYSTEM)
                 .getChildNode(REP_NAMESPACES)
                 .getChildNode(REP_NSDATA)
-                .getStrings(REP_PREFIXES)));
+                .getStrings(REP_PREFIXES)), allowOtherWhitespaceChars);
+    }
+
+    @Activate
+    private void activate(Map<String, ?> config){
+        allowOtherWhitespaceChars = PropertiesUtil.toBoolean(config.get(PROP_ALLOW_NON_SPACE),
+                PROP_ALLOW_NON_SPACE_DEFAULT);
     }
 
 }
diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
index d0d1e26..cf76899 100644
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
@@ -238,13 +238,18 @@ public class Namespaces implements NamespaceConstants {
     }
 
     public static boolean isValidLocalName(String local) {
+        return isValidLocalName(local, false);
+    }
+
+    public static boolean isValidLocalName(String local, boolean allowOtherWhitespaceChars) {
         if (local.isEmpty() || ".".equals(local) || "..".equals(local)) {
             return false;
         }
 
         for (int i = 0; i < local.length(); i++) {
             char ch = local.charAt(i);
-            if (Character.isSpaceChar(ch)) {
+            boolean spaceChar = allowOtherWhitespaceChars ? Character.isSpaceChar(ch) : Character.isWhitespace(ch);
+            if (spaceChar) {
                 if (i == 0) {
                     return false; // leading whitespace
                 } else if (i == local.length() - 1) {
diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/package-info.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/package-info.java
index dec9d93..009e098 100644
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/package-info.java
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/package-info.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.0")
+@Version("1.1.0")
 @Export(optional = "provide:=true")
 package org.apache.jackrabbit.oak.plugins.name;
 
diff --git oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProviderTest.java oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProviderTest.java
new file mode 100644
index 0000000..370d72d
--- /dev/null
+++ oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProviderTest.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.jackrabbit.oak.plugins.name;
+
+import com.google.common.collect.ImmutableMap;
+import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
+import org.apache.jackrabbit.oak.spi.commit.EditorHook;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
+import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.sling.testing.mock.osgi.MockOsgi;
+import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent.INITIAL_CONTENT;
+
+public class NameValidatorProviderTest {
+    @Rule
+    public final OsgiContext context = new OsgiContext();
+
+    private NameValidatorProvider validatorProvider = new NameValidatorProvider();
+
+    private EditorHook hook = new EditorHook(validatorProvider);
+
+    private NodeState root = INITIAL_CONTENT;
+
+    private NodeBuilder builder = root.builder();
+
+    @Test(expected = CommitFailedException.class)
+    public void namesWithLineBreaks() throws Exception{
+        builder.child("ab\ne");
+        hook.processCommit(root, builder.getNodeState(), CommitInfo.EMPTY);
+    }
+
+    @Test
+    public void namesWithLineBreaks_Compat() throws Exception{
+        MockOsgi.activate(validatorProvider, context.bundleContext(),
+                ImmutableMap.<String,Object>of("allowOtherWhitespaceChars", true));
+
+        builder.child("ab\ne");
+        hook.processCommit(root, builder.child("ab\ne").getNodeState(), CommitInfo.EMPTY);
+    }
+}
diff --git oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
index 047d072..bfdc46e 100644
--- oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
+++ oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
@@ -89,6 +89,18 @@ public class NameValidatorTest {
         validator.childNodeAdded("name", EMPTY_NODE);
     }
 
+    @Test(expected = CommitFailedException.class)
+    public void testNameWithLineBreaks() throws Exception{
+        validator.childNodeAdded("name\tx", EMPTY_NODE);
+    }
+
+    @Test
+    public void testNameWithLineBreaks_Compat() throws Exception{
+        Validator validator =
+                new NameValidator(Collections.singleton("valid"), true);
+        validator.childNodeAdded("name\tx", EMPTY_NODE);
+    }
+
     @Test
     public void testDeleted() throws CommitFailedException {
         validator.childNodeDeleted(".", EMPTY_NODE);
