Index: wp-includes/load.php
===================================================================
--- wp-includes/load.php	(revision 18994)
+++ wp-includes/load.php	(working copy)
@@ -79,13 +79,17 @@
 	}
 
 	// Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests
-	if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) == strlen( $_SERVER['SCRIPT_FILENAME'] ) - 7 ) )
+	if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && ( preg_match('/php\d*\.cgi$/', $_SERVER['SCRIPT_FILENAME']) ) )
 		$_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];
 
 	// Fix for Dreamhost and other PHP as CGI hosts
-	if ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false )
+	if ( preg_match( '/php\d*\.cgi$/', $_SERVER['SCRIPT_NAME']) )
 		unset( $_SERVER['PATH_INFO'] );
 
+	// Fix php.cgi as PHP_SELF
+	if ( preg_match( '/php\d*\.cgi$/' , $_SERVER['PHP_SELF'] ) )
+		$_SERVER['PHP_SELF'] = '';
+	
 	// Fix empty PHP_SELF
 	$PHP_SELF = $_SERVER['PHP_SELF'];
 	if ( empty( $PHP_SELF ) )
