diff --git a/swiftclient/client.py b/swiftclient/client.py
index 8375fede..d2f089a2 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -169,6 +169,8 @@ def http_log(args, kwargs, resp, body):
 
 
 def parse_header_string(data):
+    if not isinstance(data, (six.text_type, six.binary_type)):
+        data = str(data)
     if six.PY2:
         if isinstance(data, six.text_type):
             # Under Python2 requests only returns binary_type, but if we get
diff --git a/tests/unit/test_swiftclient.py b/tests/unit/test_swiftclient.py
index ae144e24..2c552be0 100644
--- a/tests/unit/test_swiftclient.py
+++ b/tests/unit/test_swiftclient.py
@@ -1203,13 +1203,16 @@ class TestPostObject(MockHttpTest):
 
     def test_ok(self):
         c.http_connection = self.fake_http_connection(200)
+        delete_at = 2.1  # not str! we don't know what other devs will use!
         args = ('http://www.test.com', 'token', 'container', 'obj',
-                {'X-Object-Meta-Test': 'mymeta'})
+                {'X-Object-Meta-Test': 'mymeta',
+                 'X-Delete-At': delete_at})
         c.post_object(*args)
         self.assertRequests([
             ('POST', '/container/obj', '', {
                 'x-auth-token': 'token',
-                'X-Object-Meta-Test': 'mymeta'}),
+                'X-Object-Meta-Test': 'mymeta',
+                'X-Delete-At': delete_at}),
         ])
 
     def test_unicode_ok(self):