Index: wp-includes/class-wp.php
===================================================================
--- wp-includes/class-wp.php	(revision 18495)
+++ wp-includes/class-wp.php	(working copy)
@@ -200,6 +200,13 @@
 
 					if ( preg_match("#^$match#", $request_match, $matches) ||
 						preg_match("#^$match#", urldecode($request_match), $matches) ) {
+						
+						if ( $wp_rewrite->use_verbose_page_rules == true && preg_match('/pagename=\$([^&\[]+)\[([0-9]+)\]/',$query,$varmatch) ) {
+							// this is a verbose page match, lets check to be sure about it
+							if ( ! get_page_by_path(${$varmatch[1]}[$varmatch[2]]) )
+						 		continue;
+						}
+
 						// Got a match.
 						$this->matched_rule = $match;
 						break;
Index: wp-includes/rewrite.php
===================================================================
--- wp-includes/rewrite.php	(revision 18495)
+++ wp-includes/rewrite.php	(working copy)
@@ -306,6 +306,13 @@
 	// Look for matches.
 	$request_match = $request;
 	foreach ( (array)$rewrite as $match => $query) {
+
+		if ( $wp_rewrite->use_verbose_page_rules == true && preg_match('/pagename=\$([^&\[]+)\[([0-9]+)\]/',$query,$varmatch) ) {
+			// this is a verbose page match, lets check to be sure about it
+			if ( ! get_page_by_path(${$varmatch[1]}[$varmatch[2]]) )
+			continue;
+		}
+
 		// If the requesting file is the anchor of the match, prepend it
 		// to the path info.
 		if ( !empty($url) && ($url != $request) && (strpos($match, $url) === 0) )
@@ -813,29 +820,8 @@
 		$rewrite_rules = array();
 		$page_structure = $this->get_page_permastruct();
 
-		if ( ! $this->use_verbose_page_rules ) {
-			$this->add_rewrite_tag('%pagename%', "(.+?)", 'pagename=');
-			$rewrite_rules = array_merge($rewrite_rules, $this->generate_rewrite_rules($page_structure, EP_PAGES));
-			return $rewrite_rules;
-		}
-
-		$page_uris = $this->page_uri_index();
-		$uris = $page_uris[0];
-		$attachment_uris = $page_uris[1];
-
-		if ( is_array( $attachment_uris ) ) {
-			foreach ( $attachment_uris as $uri => $pagename ) {
-				$this->add_rewrite_tag('%pagename%', "($uri)", 'attachment=');
-				$rewrite_rules = array_merge($rewrite_rules, $this->generate_rewrite_rules($page_structure, EP_PAGES));
-			}
-		}
-		if ( is_array( $uris ) ) {
-			foreach ( $uris as $uri => $pagename ) {
-				$this->add_rewrite_tag('%pagename%', "($uri)", 'pagename=');
-				$rewrite_rules = array_merge($rewrite_rules, $this->generate_rewrite_rules($page_structure, EP_PAGES));
-			}
-		}
-
+		$this->add_rewrite_tag('%pagename%', "(.+?)", 'pagename=');
+		$rewrite_rules = array_merge($rewrite_rules, $this->generate_rewrite_rules($page_structure, EP_PAGES));
 		return $rewrite_rules;
 	}
 
@@ -1558,7 +1544,7 @@
 
 		// Put them together.
 		if ( $this->use_verbose_page_rules )
-			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $registration_pages, $page_rewrite, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $post_rewrite, $this->extra_rules);
+			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $page_rewrite, $post_rewrite, $this->extra_rules);
 		else
 			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $default_feeds, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $post_rewrite, $page_rewrite, $this->extra_rules);
 
