Index: wp-includes/class-wp.php
===================================================================
--- wp-includes/class-wp.php	(revision 18052)
+++ wp-includes/class-wp.php	(working copy)
@@ -138,12 +138,16 @@
 			$error = '404';
 			$this->did_permalink = true;
 
-			if ( isset($_SERVER['PATH_INFO']) )
+			$pathinfo = '';
+			if ( isset( $_SERVER['PATH_INFO'] ) ) {
 				$pathinfo = $_SERVER['PATH_INFO'];
-			else
-				$pathinfo = '';
-			$pathinfo_array = explode('?', $pathinfo);
-			$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
+				$pathinfo_array = explode('?', $pathinfo);
+				$pathinfo = $pathinfo_array[0];	
+				// PATH_INFO is url-decoded, we need to encode it to match REQUEST_URI
+				$pathinfo = strtolower( urlencode( $pathinfo ) );
+				$pathinfo = str_replace( '%2f', '/', $pathinfo );	// but not slashes
+			}
+			
 			$req_uri = $_SERVER['REQUEST_URI'];
 			$req_uri_array = explode('?', $req_uri);
 			$req_uri = $req_uri_array[0];
