diff --git a/lib/http/request/writer.rb b/lib/http/request/writer.rb
index <HASH>..<HASH> 100644
--- a/lib/http/request/writer.rb
+++ b/lib/http/request/writer.rb
@@ -68,7 +68,7 @@ module HTTP
         elsif @body.is_a?(Enumerable)
           @body.each do |chunk|
             @socket << chunk.bytesize.to_s(16) << CRLF
-            @socket << chunk
+            @socket << chunk << CRLF
           end
 
           @socket << '0' << CRLF * 2
diff --git a/spec/http/request/writer_spec.rb b/spec/http/request/writer_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/http/request/writer_spec.rb
+++ b/spec/http/request/writer_spec.rb
@@ -21,5 +21,13 @@ describe HTTP::Request::Writer do
     it "does throw on a body that isn't string, enumerable or nil" do
       expect { construct true }.to raise_error
     end
+
+    it 'writes a chunked request from an Enumerable correctly' do
+      io = StringIO.new
+      writer = HTTP::Request::Writer.new(io, %w[bees cows], [], '')
+      writer.send_request_body
+      io.rewind
+      expect(io.string).to eq "4\r\nbees\r\n4\r\ncows\r\n0\r\n\r\n"
+    end
   end
 end
Added missing CRLF for chunked bodies