diff --git a/decode_hooks.go b/decode_hooks.go
new file mode 100644
index 0000000..1321ba1
--- /dev/null
+++ b/decode_hooks.go
@@ -0,0 +1,22 @@
+package mapstructure
+
+import (
+	"reflect"
+	"strings"
+)
+
+// StringToSliceHookFunc returns a DecodeHookFunc that converts
+// string to []string by splitting on the given sep.
+func StringToSliceHookFunc(sep string) DecodeHookFunc {
+	return func(
+		f reflect.Kind,
+		t reflect.Kind,
+		data interface{}) (interface{}, error) {
+		if f != reflect.String || t != reflect.Slice {
+			return data, nil
+		}
+
+		raw := data.(string)
+		return strings.Split(raw, sep), nil
+	}
+}
diff --git a/decode_hooks_test.go b/decode_hooks_test.go
new file mode 100644
index 0000000..2e22e22
--- /dev/null
+++ b/decode_hooks_test.go
@@ -0,0 +1,39 @@
+package mapstructure
+
+import (
+	"reflect"
+	"testing"
+)
+
+func TestStringToSliceHookFunc(t *testing.T) {
+	f := StringToSliceHookFunc(",")
+
+	cases := []struct {
+		f, t   reflect.Kind
+		data   interface{}
+		result interface{}
+		err    bool
+	}{
+		{reflect.Slice, reflect.Slice, 42, 42, false},
+		{reflect.String, reflect.String, 42, 42, false},
+		{
+			reflect.String,
+			reflect.Slice,
+			"foo,bar,baz",
+			[]string{"foo", "bar", "baz"},
+			false,
+		},
+	}
+
+	for i, tc := range cases {
+		actual, err := f(tc.f, tc.t, tc.data)
+		if tc.err != (err != nil) {
+			t.Fatalf("case %d: expected err %#v", i, tc.err)
+		}
+		if !reflect.DeepEqual(actual, tc.result) {
+			t.Fatalf(
+				"case %d: expected %#v, got %#v",
+				i, tc.result, actual)
+		}
+	}
+}
