diff --git a/example_test.go b/example_test.go
index 480df84..0cf5b72 100644
--- a/example_test.go
+++ b/example_test.go
@@ -61,3 +61,21 @@
 	fmt.Printf("%s %s\n", cfg.Profile["A"].Color, cfg.Profile["B"].Color)
 	// Output: white black
 }
+
+func ExampleReadStringInto_multivalue() {
+	cfgStr := `; Comment line
+[section]
+multi=value1
+multi=value2`
+	cfg := struct {
+		Section struct {
+			Multi []string
+		}
+	}{}
+	err := gcfg.ReadStringInto(&cfg, cfgStr)
+	if err != nil {
+		log.Fatalf("Failed to parse gcfg data: %s", err)
+	}
+	fmt.Println(cfg.Section.Multi)
+	// Output: [value1 value2]
+}
diff --git a/gcfg.go b/gcfg.go
index c5fe554..fbaf5cc 100644
--- a/gcfg.go
+++ b/gcfg.go
@@ -46,6 +46,10 @@
 // without a subsection name, its values are stored with the empty string used
 // as the key.
 //
+// The functions in this package panic if config is not a pointer to a struct,
+// or when a field is not of a suitable type (either a struct or a map with
+// string keys and pointer-to-struct values).
+//
 // Parsing of values
 //
 // The section structs in the config struct may contain arbitrary types.
diff --git a/read.go b/read.go
index b5ccae4..01bc139 100644
--- a/read.go
+++ b/read.go
@@ -148,15 +148,6 @@
 
 // ReadInto reads gcfg formatted data from reader and sets the values into the
 // corresponding fields in config.
-// Config must be a pointer to a struct conforming to the rules described in
-// "Data structure" above.
-//
-// ReadInto panics if config is not a pointer to a struct, or if it encounters a
-// field that is not of a suitable type (either a struct or a map with string
-// keys and pointer-to-struct values).
-//
-// See ReadStringInto for examples.
-//
 func ReadInto(config interface{}, reader io.Reader) error {
 	src, err := ioutil.ReadAll(reader)
 	if err != nil {
@@ -169,8 +160,6 @@
 
 // ReadStringInto reads gcfg formatted data from str and sets the values into
 // the corresponding fields in config.
-// ReadStringInfo is a wrapper for ReadInfo; see ReadInto(config, reader) for
-// detailed description of how data is read and set into config.
 func ReadStringInto(config interface{}, str string) error {
 	r := strings.NewReader(str)
 	return ReadInto(config, r)
@@ -178,8 +167,6 @@
 
 // ReadFileInto reads gcfg formatted data from the file filename and sets the
 // values into the corresponding fields in config.
-// ReadFileInto is a wrapper for ReadInfo; see ReadInto(config, reader) for
-// detailed description of how data is read and set into config.
 func ReadFileInto(config interface{}, filename string) error {
 	f, err := os.Open(filename)
 	if err != nil {
