diff --git a/mapstructure.go b/mapstructure.go
index 1e17e76..cdd87c0 100644
--- a/mapstructure.go
+++ b/mapstructure.go
@@ -182,6 +182,8 @@
 		err = d.decodeStruct(name, data, val)
 	case reflect.Map:
 		err = d.decodeMap(name, data, val)
+	case reflect.Ptr:
+		err = d.decodePtr(name, data, val)
 	case reflect.Slice:
 		err = d.decodeSlice(name, data, val)
 	default:
@@ -444,6 +446,20 @@
 	return nil
 }
 
+func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error {
+	// Create an element of the concrete (non pointer) type and decode
+	// into that. Then set the value of the pointer to this type.
+	valType := val.Type()
+	valElemType := valType.Elem()
+	realVal := reflect.New(valElemType)
+	if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil {
+		return err
+	}
+
+	val.Set(realVal)
+	return nil
+}
+
 func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) error {
 	dataVal := reflect.Indirect(reflect.ValueOf(data))
 	dataValKind := dataVal.Kind()
diff --git a/mapstructure_test.go b/mapstructure_test.go
index 8d86099..6b83c66 100644
--- a/mapstructure_test.go
+++ b/mapstructure_test.go
@@ -46,6 +46,11 @@
 	Vbar Basic
 }
 
+type NestedPointer struct {
+	Vfoo string
+	Vbar *Basic
+}
+
 type Slice struct {
 	Vfoo string
 	Vbar []string
@@ -536,7 +541,7 @@
 		},
 	}
 
-	var result Nested
+	var result NestedPointer
 	err := Decode(input, &result)
 	if err != nil {
 		t.Fatalf("got an err: %s", err.Error())
