Index: wp-admin/network.php
===================================================================
--- wp-admin/network.php	(revision 14525)
+++ wp-admin/network.php	(working copy)
@@ -324,35 +324,119 @@
 ?>
 </li>
 <?php
-// Construct an htaccess file.
-$htaccess_file = 'RewriteEngine On
-RewriteBase ' . $base . '
-RewriteRule ^index\.php$ - [L]
-
-# uploaded files
-RewriteRule ^' . ( $subdomain_install ? '' : '([_0-9a-zA-Z-]+/)?' ) . 'files/(.+) wp-includes/ms-files.php?file=$' . ( $subdomain_install ? 1 : 2 ) . ' [L]' . "\n";
-
-if ( ! $subdomain_install )
-	$htaccess_file .= "\n# add a trailing slash to /wp-admin\n" . 'RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]' . "\n";
-
-$htaccess_file .= "\n" . 'RewriteCond %{REQUEST_FILENAME} -f [OR]
-RewriteCond %{REQUEST_FILENAME} -d
-RewriteRule ^ - [L]';
-
-// @todo custom content dir.
-if ( ! $subdomain_install )
-	$htaccess_file .= "\n" . 'RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
-RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]';
-
-$htaccess_file .= "\nRewriteRule . index.php [L]";
-
-?>
-			<li><p><?php printf( __( 'Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p>
-				<textarea class="code" readonly="readonly" cols="100" rows="<?php echo $subdomain_install ? 11 : 16; ?>">
-<?php echo wp_htmledit_pre( $htaccess_file ); ?>
-</textarea></li>
+	if (iis7_supports_permalinks()) { 
+			if (is_subdomain_install()) {
+				$web_config_file = 
+'<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <system.webServer>
+        <rewrite>
+            <rules>
+                <rule name="WordPress Rule 1" stopProcessing="true">
+                    <match url="^index\.php$" ignoreCase="false" />
+                    <action type="None" />
+                </rule>
+                <rule name="WordPress Rule 2" stopProcessing="true">
+                    <match url="^files/(.+)" ignoreCase="false" />
+                    <action type="Rewrite" url="wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />
+                </rule>
+                <rule name="WordPress Rule 3" stopProcessing="true">
+                    <match url="^" ignoreCase="false" />
+                    <conditions logicalGrouping="MatchAny">
+                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
+                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
+                    </conditions>
+                    <action type="None" />
+                </rule>
+                <rule name="WordPress Rule 4" stopProcessing="true">
+                    <match url="." ignoreCase="false" />
+                    <action type="Rewrite" url="index.php" />
+                </rule>
+            </rules>
+        </rewrite>
+    </system.webServer>
+</configuration>';
+			} else {
+				$web_config_file = 
+'<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <system.webServer>
+        <rewrite>
+            <rules>
+                <rule name="WordPress Rule 1" stopProcessing="true">
+                    <match url="^index\.php$" ignoreCase="false" />
+                    <action type="None" />
+                </rule>
+                <rule name="WordPress Rule 2" stopProcessing="true">
+                    <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
+                    <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
+                </rule>
+                <rule name="WordPress Rule 3" stopProcessing="true">
+                    <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
+                    <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
+                </rule>
+                <rule name="WordPress Rule 4" stopProcessing="true">
+                    <match url="^" ignoreCase="false" />
+                    <conditions logicalGrouping="MatchAny">
+                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
+                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
+                    </conditions>
+                    <action type="None" />
+                </rule>
+                <rule name="WordPress Rule 5" stopProcessing="true">
+                    <match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />
+                    <action type="Rewrite" url="{R:2}" />
+                </rule>
+                <rule name="WordPress Rule 6" stopProcessing="true">
+                    <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
+                    <action type="Rewrite" url="{R:2}" />
+                </rule>
+                <rule name="WordPress Rule 7" stopProcessing="true">
+                    <match url="." ignoreCase="false" />
+                    <action type="Rewrite" url="index.php" />
+                </rule>
+            </rules>
+        </rewrite>
+    </system.webServer>
+</configuration>';
+			}
+	?>
+		<li><p><?php printf( __( 'Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p>
+		<textarea class="code" readonly="readonly" cols="100" rows="20">
+		<?php echo wp_htmledit_pre( $web_config_file ); ?>
+		</textarea></li>
 		</ol>
-<?php if ( !is_multisite() ) { ?>
+	<?php } else {
+		// Construct an htaccess file.
+		$htaccess_file = 'RewriteEngine On
+				RewriteBase ' . $base . '
+				RewriteRule ^index\.php$ - [L]
+				
+				# uploaded files
+				RewriteRule ^' . ( $subdomain_install ? '' : '([_0-9a-zA-Z-]+/)?' ) . 'files/(.+) wp-includes/ms-files.php?file=$' . ( $subdomain_install ? 1 : 2 ) . ' [L]' . "\n";
+		
+		if ( ! $subdomain_install )
+			$htaccess_file .= "\n# add a trailing slash to /wp-admin\n" . 'RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]' . "\n";
+		
+		$htaccess_file .= "\n" . 'RewriteCond %{REQUEST_FILENAME} -f [OR]
+				RewriteCond %{REQUEST_FILENAME} -d
+				RewriteRule ^ - [L]';
+		
+		// @todo custom content dir.
+		if ( ! $subdomain_install )
+			$htaccess_file .= "\n" . 'RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
+					RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]';
+		
+		$htaccess_file .= "\nRewriteRule . index.php [L]";
+		
+		?>
+		<li><p><?php printf( __( 'Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p>
+		<textarea class="code" readonly="readonly" cols="100" rows="<?php echo $subdomain_install ? 11 : 16; ?>">
+		<?php echo wp_htmledit_pre( $htaccess_file ); ?>
+		</textarea></li>
+		</ol>
+	<?php }
+	if ( !is_multisite() ) { ?>
 		<p><?php printf( __( 'Once you complete these steps, your network is enabled and configured. You will have to log in again.') ); ?> <a href="<?php echo esc_url( site_url( 'wp-login.php' ) ); ?>"><?php _e( 'Log In' ); ?></a></p>
 <?php
 	}
Index: wp-includes/rewrite.php
===================================================================
--- wp-includes/rewrite.php	(revision 14525)
+++ wp-includes/rewrite.php	(working copy)
@@ -1757,10 +1757,16 @@
 
 		if ( ! $this->using_permalinks() )
 			return '';
-
+		$rules = '';
+		$extra_indent = '';
+		if ( $add_parent_tags ) {
+			$rules .= "<configuration>".$end_of_line;
+			$rules .= $indent."<system.webServer>".$end_of_line;
+			$rules .= $indent.$indent."<rewrite>".$end_of_line;
+			$rules .= $indent.$indent.$indent."<rules>".$end_of_line;
+			$extra_indent = $indent.$indent.$indent.$indent;
+		}
 		if ( !is_multisite() ) {
-			$rules = '';
-			$extra_indent = '';
 			if ( $add_parent_tags ) {
 				$rules .= "<configuration>".$end_of_line;
 				$rules .= $indent."<system.webServer>".$end_of_line;
@@ -1778,63 +1784,77 @@
 			$rules .= $extra_indent.$indent."<action type=\"Rewrite\" url=\"index.php\" />".$end_of_line;
 			$rules .= $extra_indent."</rule>";
 
-			if ( $add_parent_tags ) {
-				$rules .= $end_of_line.$indent.$indent.$indent."</rules>".$end_of_line;
-				$rules .= $indent.$indent."</rewrite>".$end_of_line;
-				$rules .= $indent."</system.webServer>".$end_of_line;
-				$rules .= "</configuration>";
-			}
 		} else {
+			/* NOT SURE ABOUT THIS PORTION WHERE IT GOES IN Rules
 			$siteurl = get_option( 'siteurl' );
 			$siteurl_len = strlen( $siteurl );
 			if ( substr( WP_CONTENT_URL, 0, $siteurl_len ) == $siteurl && strlen( WP_CONTENT_URL ) > $siteurl_len )
 				$content_path = substr( WP_CONTENT_URL, $siteurl_len + 1 );
 			else
 				$content_path = 'wp-content';
-			$rules = '<rule name="wordpress - strip index.php" stopProcessing="false">
-					<match url="^index.php/(.*)$" />
-						<action type="Rewrite" url="{R:1}" />
-					</rule>
-					<rule name="wordpress - 1" stopProcessing="true">
-						<match url="^(.*/)?files/$" />
-						<action type="Rewrite" url="index.php" />
-					</rule>
-					<rule name="wordpress - 2" stopProcessing="true">
-						<match url="^(.*/)?files/(.*)" />
-						<conditions>
-							<add input="{REQUEST_URI}" negate="true" pattern=".*' . $content_path . '/plugins.*"/>
-						</conditions>
-						<action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
-					</rule>
-					<rule name="wordpress - 3" stopProcessing="true">
-						<match url="^(.+)$" />
-						<conditions>
-							<add input="{REQUEST_URI}" pattern="^.*/wp-admin$" />
-						</conditions>
-						<action type="Redirect" url="{R:1}/" redirectType="Permanent" />
-					</rule>
-					<rule name="wordpress - 4" stopProcessing="true">
-						<match url="."/>
-						<conditions logicalGrouping="MatchAny">
-							<add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" />
-							<add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" />
-						</conditions>
-						<action type="None" />
-					</rule>
-					<rule name="wordpress - 5" stopProcessing="true">
-						<match url="^([_0-9a-zA-Z-]+/)?(wp-.*)" />
-						<action type="Rewrite" url="{R:2}" />
-					</rule>
-					<rule name="wordpress - 6" stopProcessing="true">
-						<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" />
-						<action type="Rewrite" url="{R:2}" />
-					</rule>
-					<rule name="wordpress - 7" stopProcessing="true">
-						<match url="." />
-						<action type="Rewrite" url="index.php" />
-					</rule>';
+			*/
+			if (is_subdomain_install()) {
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 1\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^index\.php$\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"None\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 2\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^files/(.+)\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"wp-includes/ms-files.php?file={R:1}\" appendQueryString=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 3\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<conditions logicalGrouping=\"MatchAny\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."</conditions>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"None\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 4\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\".\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"index.php\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+			} else {
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 1\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^index\.php$\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"None\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 2\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^([_0-9a-zA-Z-]+/)?files/(.+)\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"wp-includes/ms-files.php?file={R:2}\" appendQueryString=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 3\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^([_0-9a-zA-Z-]+/)?wp-admin$\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Redirect\" url=\"{R:1}wp-admin/\" redirectType=\"Permanent\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 4\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<conditions logicalGrouping=\"MatchAny\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."</conditions>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"None\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 5\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"{R:2}\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 6\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\"^([_0-9a-zA-Z-]+/)?(.*\.php)$\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"{R:2}\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."<rule name=\"wordpress - Rule 7\" stopProcessing=\"true\">".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<match url=\".\" ignoreCase=\"false\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent.$indent."<action type=\"Rewrite\" url=\"index.php\" />".$end_of_line;
+				$rules .= $extra_indent.$indent.$indent.$indent.$indent."</rule>".$end_of_line;
+			}
 		}
-
+		if ( $add_parent_tags ) {
+			$rules .= $end_of_line.$indent.$indent.$indent."</rules>".$end_of_line;
+			$rules .= $indent.$indent."</rewrite>".$end_of_line;
+			$rules .= $indent."</system.webServer>".$end_of_line;
+			$rules .= "</configuration>";
+		}
 		$rules = apply_filters('iis7_url_rewrite_rules', $rules);
 
 		return $rules;
