Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 6336)
+++ wp-settings.php	(working copy)
@@ -36,15 +36,18 @@
 	else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
 		$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
 	}
+	// Simulate REQUEST_URI for IIS
 	else {
-		// If root then simulate that no script-name was specified
-		if (empty($_SERVER['PATH_INFO']))
-			$_SERVER['REQUEST_URI'] = substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')) . '/';
-		elseif ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
+		$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
+
+		if (isset($_SERVER['PATH_INFO']) && !empty($_SERVER['PATH_INFO']))
+		{
 			// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
-			$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
-		else
-			$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
+			if ( $_SERVER['PATH_INFO'] !== $_SERVER['SCRIPT_NAME'] )
+			{
+				$_SERVER['REQUEST_URI'] .= $_SERVER['PATH_INFO'];
+			}
+		}
 
 		// Append the query string if it exists and isn't null
 		if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
