diff --git a/validator.go b/validator.go
index <HASH>..<HASH> 100644
--- a/validator.go
+++ b/validator.go
@@ -216,7 +216,7 @@ func (v *Validator) validateStructRecursive(top interface{}, s interface{}) *Str
 
 			} else {
 
-				if structErrors := v.ValidateStruct(valueField.Interface()); structErrors != nil {
+				if structErrors := v.validateStructRecursive(top, valueField.Interface()); structErrors != nil {
 					validationErrors.StructErrors[typeField.Name] = structErrors
 					// free up memory map no longer needed
 					structErrors = nil
issue-#<I>

correct incorrect call to ValidateStruct and changed to
ValidateStructRecursive