diff --git a/env.go b/env.go
index <HASH>..<HASH> 100644
--- a/env.go
+++ b/env.go
@@ -292,8 +292,10 @@ func getOr(key, defaultValue string, defExists bool, envs map[string]string) (va
 func set(field reflect.Value, sf reflect.StructField, value string, funcMap map[reflect.Type]ParserFunc) error {
 	var tm = asTextUnmarshaler(field)
 	if tm != nil {
-		var err = tm.UnmarshalText([]byte(value))
-		return newParseError(sf, err)
+		if err := tm.UnmarshalText([]byte(value)); err != nil {
+			return newParseError(sf, err)
+		}
+		return nil
 	}
 
 	var typee = sf.Type
refactor: make unmarshal error handling clearer