Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 11575)
+++ wp-includes/post.php	(working copy)
@@ -1192,7 +1192,7 @@
 		foreach ( (array) $children as $child )
 			clean_page_cache($child->ID);
 
-		$wp_rewrite->flush_rules();
+		$wp_rewrite->flush_rules(false);
 	} else {
 		clean_post_cache($postid);
 	}
@@ -3354,7 +3354,7 @@
 		// Avoid flushing rules for every post during import.
 		if ( !defined('WP_IMPORTING') ) {
 			global $wp_rewrite;
-			$wp_rewrite->flush_rules();
+			$wp_rewrite->flush_rules(false);
 		}
 	} else {
 		clean_post_cache($post_id);
Index: wp-includes/rewrite.php
===================================================================
--- wp-includes/rewrite.php	(revision 11575)
+++ wp-includes/rewrite.php	(working copy)
@@ -1822,13 +1822,14 @@
 	 *
 	 * @since 2.0.1
 	 * @access public
+	 * @param $hard bool Whether to update .htaccess (hard flush) or just update rewrite_rules transient (soft flush). Default is true (hard).
 	 */
-	function flush_rules() {
+	function flush_rules($hard = true) {
 		delete_transient('rewrite_rules');
 		$this->wp_rewrite_rules();
-		if ( function_exists('save_mod_rewrite_rules') )
+		if ( $hard && function_exists('save_mod_rewrite_rules') )
 			save_mod_rewrite_rules();
-		if ( function_exists('iis7_save_url_rewrite_rules') )
+		if ( $hard && function_exists('iis7_save_url_rewrite_rules') )
 			iis7_save_url_rewrite_rules();
 	}
 
Index: wp-admin/admin.php
===================================================================
--- wp-admin/admin.php	(revision 11575)
+++ wp-admin/admin.php	(working copy)
@@ -146,7 +146,7 @@
 
 	// Make sure rules are flushed
 	global $wp_rewrite;
-	$wp_rewrite->flush_rules();
+	$wp_rewrite->flush_rules(false);
 
 	exit();
 } else {
