diff --git a/decode.go b/decode.go
index cef8c3a..1a16dda 100644
--- a/decode.go
+++ b/decode.go
@@ -26,6 +26,8 @@
 // time.Time fields have the vaule of time.Parse() assigned. The default layout
 // is time.RFC3339 but can be set in the field's tag.
 //
+// interface{} fields have the value assigned as string.
+//
 // Arrays and slices of string, boolean, numeric, time.Duration and time.Time
 // fields have the value interpreted as a comma separated list of values. The
 // individual values are trimmed of whitespace and empty values are ignored. A
@@ -229,6 +231,13 @@
 		}
 		v.Set(m)
 
+	case isInterface(t):
+		val, err := value()
+		if err != nil {
+			return err
+		}
+		v.Set(reflect.ValueOf(val))
+
 	default:
 		return fmt.Errorf("unsupported type %s", t)
 	}
@@ -266,15 +275,16 @@
 	return key, opts
 }
 
-func isArray(t reflect.Type) bool    { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice }
-func isBool(t reflect.Type) bool     { return t.Kind() == reflect.Bool }
-func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) }
-func isMap(t reflect.Type) bool      { return t.Kind() == reflect.Map }
-func isNumeric(t reflect.Type) bool  { return isInt(t) || isUint(t) || isFloat(t) }
-func isPtr(t reflect.Type) bool      { return t.Kind() == reflect.Ptr }
-func isString(t reflect.Type) bool   { return t.Kind() == reflect.String }
-func isStruct(t reflect.Type) bool   { return t.Kind() == reflect.Struct }
-func isTime(t reflect.Type) bool     { return t == reflect.TypeOf(time.Time{}) }
+func isArray(t reflect.Type) bool     { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice }
+func isBool(t reflect.Type) bool      { return t.Kind() == reflect.Bool }
+func isDuration(t reflect.Type) bool  { return t == reflect.TypeOf(time.Second) }
+func isInterface(t reflect.Type) bool { return t.Kind() == reflect.Interface }
+func isMap(t reflect.Type) bool       { return t.Kind() == reflect.Map }
+func isNumeric(t reflect.Type) bool   { return isInt(t) || isUint(t) || isFloat(t) }
+func isPtr(t reflect.Type) bool       { return t.Kind() == reflect.Ptr }
+func isString(t reflect.Type) bool    { return t.Kind() == reflect.String }
+func isStruct(t reflect.Type) bool    { return t.Kind() == reflect.Struct }
+func isTime(t reflect.Type) bool      { return t == reflect.TypeOf(time.Time{}) }
 func isFloat(t reflect.Type) bool {
 	return t.Kind() == reflect.Float32 || t.Kind() == reflect.Float64
 }
diff --git a/decode_test.go b/decode_test.go
index 4115fbb..f7257ee 100644
--- a/decode_test.go
+++ b/decode_test.go
@@ -25,6 +25,7 @@
 		F64 float64
 		D   time.Duration
 		TM  time.Time
+		IF  interface{}
 	}
 	in := `
 	S=abc
@@ -44,6 +45,7 @@
 	F64=6.4
 	D=5s
 	TM=2015-01-02T12:34:56Z
+	IF=interface
 	`
 	out := &S{
 		S:   "abc",
@@ -63,6 +65,7 @@
 		F64: 6.4,
 		D:   5 * time.Second,
 		TM:  tm(t, time.RFC3339, "2015-01-02T12:34:56Z"),
+		IF:  "interface",
 	}
 	testDecode(t, in, &S{}, out)
 }
@@ -86,6 +89,7 @@
 		F64 float64       `properties:",default=6.4"`
 		D   time.Duration `properties:",default=5s"`
 		TM  time.Time     `properties:",default=2015-01-02T12:34:56Z"`
+		IF  interface{}   `properties:",default=abc"`
 	}
 	out := &S{
 		S:   "abc",
@@ -105,6 +109,7 @@
 		F64: 6.4,
 		D:   5 * time.Second,
 		TM:  tm(t, time.RFC3339, "2015-01-02T12:34:56Z"),
+		IF:  "abc",
 	}
 	testDecode(t, "", &S{}, out)
 }
@@ -251,6 +256,7 @@
 		D map[string]S
 		E map[string]int
 		F map[string]int `properties:"-"`
+		G map[string]interface{}
 	}
 	in := `
 	A.foo=bar
@@ -262,6 +268,7 @@
 	C.bar.three=3
 	C.bar.four=4
 	D.foo.a=bar
+	G.foo=bar
 	`
 	out := &X{
 		A: map[string]string{"foo": "bar", "bar": "bang"},
@@ -269,6 +276,7 @@
 		C: map[string]map[string]string{"foo": map[string]string{"one": "1", "two": "2"}, "bar": map[string]string{"three": "3", "four": "4"}},
 		D: map[string]S{"foo": S{"bar"}},
 		E: map[string]int{},
+		G: map[string]interface{}{"foo": "bar"},
 	}
 	testDecode(t, in, &X{}, out)
 }
