The attached application demonstrates a problem with the caching of "post vars" in WebOb 1.0.2. The "good result" shown is correct on the first call to POST.items(); the "bad result" (on the second call to POST.items()) has every key in the form URL-quoted. This is a regression from WebOb 1.0.1.
The problem appears to be related to line 489 of request.py. Changing it from:
env['webob._parsed_post_vars'] = (vars, self.body_file_raw)
env['webob._parsed_post_vars'] = (vars, self.body_file)
Produces the correct result. I doubt this is the correct fix though.