diff --git a/lib/openapi3_parser/node_factory/object.rb b/lib/openapi3_parser/node_factory/object.rb
index <HASH>..<HASH> 100644
--- a/lib/openapi3_parser/node_factory/object.rb
+++ b/lib/openapi3_parser/node_factory/object.rb
@@ -61,7 +61,7 @@ module Openapi3Parser
 
       def validate_input(error_collection)
         super(error_collection)
-        validator = Validator.new(processed_input, self)
+        validator = Validator.new(context.input, self)
         error_collection.tap { |ec| ec.append(*validator.errors) }
       end
 
diff --git a/lib/openapi3_parser/node_factory/object/node_builder.rb b/lib/openapi3_parser/node_factory/object/node_builder.rb
index <HASH>..<HASH> 100644
--- a/lib/openapi3_parser/node_factory/object/node_builder.rb
+++ b/lib/openapi3_parser/node_factory/object/node_builder.rb
@@ -65,7 +65,7 @@ module Openapi3Parser
 
         def check_validation_errors(name, field_config)
           field_context = context.next_namespace(name)
-          errors = field_config.validation_errors(input[name], factory)
+          errors = field_config.validation_errors(field_context.input, factory)
 
           return unless errors.any?
           raise Openapi3Parser::Error,
Don't use processed_input for validation

It's much easier to validate with more primitive collections