diff --git a/lex.go b/lex.go
index c5b9942..0694e2b 100644
--- a/lex.go
+++ b/lex.go
@@ -228,9 +228,15 @@
 	for {
 		switch r := l.next(); {
 		case isEscape(r):
-			err := l.scanEscapeSequence()
-			if err != nil {
-				return l.errorf(err.Error())
+			r := l.peek()
+			if isEOL(r) {
+				l.next()
+				l.acceptRun(" \t")
+			} else {
+				err := l.scanEscapeSequence()
+				if err != nil {
+					return l.errorf(err.Error())
+				}
 			}
 
 		case isEOL(r):
diff --git a/properties_test.go b/properties_test.go
index 6446c98..dca0e42 100644
--- a/properties_test.go
+++ b/properties_test.go
@@ -39,10 +39,10 @@
 	testKeyValue(c, "key = v\\ a\\:lu\\=e\\n\\r\\t", "key", "v a:lu=e\n\r\t")
 }
 
-// func (l *LoadSuite) TestMultilineValue(c *C) {
-// 	input := "key = valueA,\\\n    valueB"
-// 	testKeyValue(c, input, "key", "valueA,valueB")
-// }
+func (l *LoadSuite) TestMultilineValue(c *C) {
+	input := "key = valueA,\\\n    valueB"
+	testKeyValue(c, input, "key", "valueA,valueB")
+}
 
 func (l *LoadSuite) TestFailWithPrematureEOF(c *C) {
 	_, err := NewPropertiesFromString("key")
