Fix nested keys
diff --git a/src/toml/parser.go b/src/toml/parser.go
index a700b91..0045e31 100644
--- a/src/toml/parser.go
+++ b/src/toml/parser.go
@@ -84,8 +84,8 @@
 func parseGroup(p *parser) parserStateFn {
 	p.getToken() // discard the [
 	key := p.getToken()
-	if key.typ != tokenKey {
-		panic(fmt.Sprintf("unexpected token %s, was expecting a key", key))
+	if key.typ != tokenKeyGroup {
+		panic(fmt.Sprintf("unexpected token %s, was expecting a key group", key))
 	}
 	p.tree.createSubTree(key.val)
 	p.assume(tokenRightBracket)
diff --git a/src/toml/parser_test.go b/src/toml/parser_test.go
index d7ae0e3..f5ad742 100644
--- a/src/toml/parser_test.go
+++ b/src/toml/parser_test.go
@@ -69,3 +69,10 @@
 		"b": false,
 	})
 }
+
+func TestNestedKeys(t *testing.T) {
+	tree := Load("[a.b.c]\nd = 42")
+	assertTree(t, tree, map[string]interface{}{
+		"a.b.c.d": int64(42),
+	})
+}
diff --git a/src/toml/toml.go b/src/toml/toml.go
index 137a9fe..8653399 100644
--- a/src/toml/toml.go
+++ b/src/toml/toml.go
@@ -20,8 +20,6 @@
 	return keys
 }
 
-// Get an element from the tree.
-// If the path described by the key does not exist, nil is returned.
 func (t *TomlTree) Get(key string) interface{} {
 	subtree := t
 	keys := strings.Split(key, ".")