Index: wp-includes/class-wp.php
===================================================================
--- wp-includes/class-wp.php	(revision 18833)
+++ wp-includes/class-wp.php	(working copy)
@@ -159,7 +159,7 @@
 			// front.  For path info requests, this leaves us with the requesting
 			// filename, if any.  For 404 requests, this leaves us with the
 			// requested permalink.
-			$req_uri = str_replace($pathinfo, '', $req_uri);
+			$req_uri = str_replace( $pathinfo, '', rawurldecode($req_uri) );
 			$req_uri = trim($req_uri, '/');
 			$req_uri = preg_replace("|^$home_path|", '', $req_uri);
 			$req_uri = trim($req_uri, '/');
@@ -199,7 +199,8 @@
 						$request_match = $req_uri . '/' . $request;
 
 					if ( preg_match("#^$match#", $request_match, $matches) ||
-						preg_match("#^$match#", urldecode($request_match), $matches) ) {
+						preg_match("#^$match#", urldecode($request_match), $matches) ||
+						preg_match("#^$match#", strtolower( rawurlencode($request_match) ), $matches) ) {
 
 						if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$([^&\[]+)\[([0-9]+)\]/', $query, $varmatch ) ) {
 							// this is a verbose page match, lets check to be sure about it

