Index: wp-includes/rewrite.php
===================================================================
--- wp-includes/rewrite.php	(revision 17488)
+++ wp-includes/rewrite.php	(working copy)
@@ -1644,9 +1644,11 @@
 			$this->matches = '';
 			$rewrite = $this->rewrite_rules();
 			$num_rules = count($rewrite);
-			$rules .= "RewriteCond %{REQUEST_FILENAME} -f [OR]\n" .
+			$rules .= "RewriteCond $1 ^(index\.php)?$ [OR]\n" .
+				"RewriteCond $1 \.(gif|jpe?g|png|ico|css|js)$ [OR]\n" .
+				"RewriteCond %{REQUEST_FILENAME} -f [OR]\n" .
 				"RewriteCond %{REQUEST_FILENAME} -d\n" .
-				"RewriteRule ^.*$ - [S=$num_rules]\n";
+				"RewriteRule (.*) - [S=$num_rules]\n";
 
 			foreach ( (array) $rewrite as $match => $query) {
 				// Apache 1.3 does not support the reluctant (non-greedy) modifier.
@@ -1664,9 +1666,11 @@
 					$rules .= 'RewriteRule ^' . $match . ' ' . $site_root . $query . " [QSA,L]\n";
 			}
 		} else {
-			$rules .= "RewriteCond %{REQUEST_FILENAME} !-f\n" .
+			$rules .= "RewriteCond $1 !^(index\.php)?$\n" .
+				"RewriteCond $1 !\.(gif|jpe?g|png|ico|css|js)$\n" .
+				"RewriteCond %{REQUEST_FILENAME} !-f\n" .
 				"RewriteCond %{REQUEST_FILENAME} !-d\n" .
-				"RewriteRule . {$home_root}{$this->index} [L]\n";
+				"RewriteRule (.+) {$home_root}{$this->index} [L]\n";
 		}
 
 		$rules .= "</IfModule>\n";

