Obtained from:	https://github.com/typhoeus/ethon/commit/4a1700c2856de9e139cbd2c91a787c1ff88edd36
Reference:	https://github.com/typhoeus/typhoeus/issues/739

--- lib/ethon/easy/callbacks.rb.orig	2025-10-05 21:07:34 UTC
+++ lib/ethon/easy/callbacks.rb
@@ -37,10 +37,10 @@ module Ethon
       # @return [ Proc ] The callback.
       def body_write_callback
         @body_write_callback ||= proc do |stream, size, num, object|
-          headers
+          headers_user_callback_result = headers
           result = body(chunk = stream.read_string(size * num))
           @response_body << chunk if result == :unyielded
-          result != :abort ? size * num : -1
+          (result != :abort && headers_user_callback_result != :abort) ? size * num : -1
         end
       end
 
