diff --git a/src/main/java/com/typesafe/config/impl/ConfigUtil.java b/src/main/java/com/typesafe/config/impl/ConfigUtil.java
index 65ae09af..fff540e1 100644
--- a/src/main/java/com/typesafe/config/impl/ConfigUtil.java
+++ b/src/main/java/com/typesafe/config/impl/ConfigUtil.java
@@ -79,7 +79,7 @@ final public class ConfigUtil {
             return s;
 
         int start = 0;
-        while (true) {
+        while (start < length) {
             char c = s.charAt(start);
             if (c == ' ' || c == '\n') {
                 start += 1;
@@ -93,7 +93,7 @@ final public class ConfigUtil {
         }
 
         int end = length;
-        while (true) {
+        while (end > start) {
             char c = s.charAt(end - 1);
             if (c == ' ' || c == '\n') {
                 --end;
diff --git a/src/test/scala/com/typesafe/config/impl/UtilTest.scala b/src/test/scala/com/typesafe/config/impl/UtilTest.scala
index 2aec06d9..6f04a16f 100644
--- a/src/test/scala/com/typesafe/config/impl/UtilTest.scala
+++ b/src/test/scala/com/typesafe/config/impl/UtilTest.scala
@@ -21,6 +21,7 @@ class UtilTest extends TestUtils {
         assertEquals("", ConfigUtil.unicodeTrim(""))
         assertEquals("a", ConfigUtil.unicodeTrim("a"))
         assertEquals("abc", ConfigUtil.unicodeTrim("abc"))
+        assertEquals("", ConfigUtil.unicodeTrim("   \n   \n  \u00A0 "))
         assertEquals(supplementaryChars, ConfigUtil.unicodeTrim(supplementaryChars))
 
         val s = " \u00A0 \n  " + supplementaryChars + "  \n  \u00A0 "