Fix multiline array
diff --git a/src/toml/lexer.go b/src/toml/lexer.go
index 0690c28..586263b 100644
--- a/src/toml/lexer.go
+++ b/src/toml/lexer.go
@@ -76,6 +76,7 @@
 	pos    int
 	width  int
 	tokens chan token
+	depth  int
 }
 
 func (l *lexer) run() {
@@ -177,8 +178,10 @@
 		next := l.peek()
 		switch next {
 		case '[':
+			l.depth += 1
 			return lexLeftBracket
 		case ']':
+			l.depth -= 1
 			return lexRightBracket
 		case '#':
 			return lexComment
@@ -189,8 +192,11 @@
 		case '\n':
 			l.ignore()
 			l.pos += 1
-			/*l.emit(tokenEOF)*/
-			return lexVoid
+			if l.depth == 0 {
+				return lexVoid
+			} else {
+				return lexRvalue
+			}
 		}
 
 		if l.follow("true") {
diff --git a/src/toml/parser_test.go b/src/toml/parser_test.go
index e3dcf1c..fd271ce 100644
--- a/src/toml/parser_test.go
+++ b/src/toml/parser_test.go
@@ -88,6 +88,13 @@
 	})
 }
 
+func TestArrayMultiline(t *testing.T) {
+	tree := Load("a = [42,\n21, 10,]")
+	assertTree(t, tree, map[string]interface{}{
+		"a": []int64{int64(42), int64(21), int64(10)},
+	})
+}
+
 func TestArrayNested(t *testing.T) {
 	tree := Load("a = [[42, 21], [10]]")
 	assertTree(t, tree, map[string]interface{}{