diff --git a/moto/s3/responses.py b/moto/s3/responses.py
index <HASH>..<HASH> 100644
--- a/moto/s3/responses.py
+++ b/moto/s3/responses.py
@@ -229,7 +229,7 @@ class ResponseObject(object):
         meta_regex = re.compile('^x-amz-meta-([a-zA-Z0-9\-_]+)$', flags=re.IGNORECASE)
         if replace is True:
             key.clear_metadata()
-        for header in request.headers:
+        for header, value in request.headers.items():
             if isinstance(header, six.string_types):
                 result = meta_regex.match(header)
                 if result:
treat request.headers as a more general list of dicts