implement errwrap.Wrapper
diff --git a/error.go b/error.go
index f97c416..47a99e5 100644
--- a/error.go
+++ b/error.go
@@ -1,6 +1,7 @@
 package mapstructure
 
 import (
+	"errors"
 	"fmt"
 	"sort"
 	"strings"
@@ -24,6 +25,21 @@
 		len(e.Errors), strings.Join(points, "\n"))
 }
 
+// WrappedErrors implements the errwrap.Wrapper interface to make this
+// return value more useful with the errwrap and go-multierror libraries.
+func (e *Error) WrappedErrors() []error {
+	if e == nil {
+		return nil
+	}
+
+	result := make([]error, len(e.Errors))
+	for i, e := range e.Errors {
+		result[i] = errors.New(e)
+	}
+
+	return result
+}
+
 func appendErrors(errors []string, err error) []string {
 	switch e := err.(type) {
 	case *Error: