diff --git a/tests/test_swiftclient.py b/tests/test_swiftclient.py
index 6088bf3d..2a49114e 100644
--- a/tests/test_swiftclient.py
+++ b/tests/test_swiftclient.py
@@ -679,19 +679,25 @@ class TestPutObject(MockHttpTest):
         resp = MockHttpResponse(status=200)
         conn[1].getresponse = resp.fake_response
         conn[1]._request = resp._fake_request
-        mock_file = StringIO.StringIO('asdf')
+        astring = 'asdf'
+        astring_len = len(astring)
+        mock_file = StringIO.StringIO(astring)
 
         c.put_object(url='http://www.test.com', http_conn=conn,
-                     contents=mock_file, content_length=4)
+                     contents=mock_file, content_length=astring_len)
         self.assertTrue(isinstance(resp.requests_params['data'],
                                    swiftclient.utils.LengthWrapper))
-        self.assertEqual(mock_file.len, 4)
+        self.assertEqual(astring_len,
+                         len(resp.requests_params['data'].read()))
 
+        mock_file = StringIO.StringIO(astring)
         c.put_object(url='http://www.test.com', http_conn=conn,
-                     headers={'Content-Length': '4'}, contents=mock_file)
+                     headers={'Content-Length': str(astring_len)},
+                     contents=mock_file)
         self.assertTrue(isinstance(resp.requests_params['data'],
                                    swiftclient.utils.LengthWrapper))
-        self.assertEqual(mock_file.len, 4)
+        self.assertEqual(astring_len,
+                         len(resp.requests_params['data'].read()))
 
     def test_chunk_upload(self):
         # Chunked upload happens when no content_length is passed to put_object