StringToSlice: empty string is empty slice
diff --git a/decode_hooks.go b/decode_hooks.go
index 2bbd54a..087a392 100644
--- a/decode_hooks.go
+++ b/decode_hooks.go
@@ -43,6 +43,10 @@
 		}
 
 		raw := data.(string)
+		if raw == "" {
+			return []string{}, nil
+		}
+
 		return strings.Split(raw, sep), nil
 	}
 }
diff --git a/decode_hooks_test.go b/decode_hooks_test.go
index 454d1f3..b417dee 100644
--- a/decode_hooks_test.go
+++ b/decode_hooks_test.go
@@ -96,6 +96,13 @@
 			[]string{"foo", "bar", "baz"},
 			false,
 		},
+		{
+			reflect.String,
+			reflect.Slice,
+			"",
+			[]string{},
+			false,
+		},
 	}
 
 	for i, tc := range cases {