diff --git a/tornado/httpserver.py b/tornado/httpserver.py
index <HASH>..<HASH> 100644
--- a/tornado/httpserver.py
+++ b/tornado/httpserver.py
@@ -26,6 +26,7 @@ import logging
 import os
 import socket
 import time
+import urllib
 import urlparse
 
 try:
@@ -398,7 +399,8 @@ class HTTPRequest(object):
         self._finish_time = None
 
         scheme, netloc, path, query, fragment = urlparse.urlsplit(uri)
-        self.path = path
+        self.raw_path = path
+        self.path = urllib.unquote(path)
         self.query = query
         arguments = cgi.parse_qs(query)
         self.arguments = {}
Parse percent escapes in the path component of the uri, to be more
consistent with our handling of query parameters (especially important
when capturing groups are used in the URLSpec regex).

This change is slightly backwards-incompatible:  applications that have
already added an unquote() call on arguments to RequestHandler.get/post
or use percent escapes in URLSpec patterns will need to remove them.