Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 8251)
+++ wp-includes/post.php	(working copy)
@@ -1218,7 +1218,7 @@
 	$defaults = array('post_status' => 'draft', 'post_type' => 'post', 'post_author' => $user_ID,
 		'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
 		'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '',
-		'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '');
+		'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'clean_cache' => true );
 
 	$postarr = wp_parse_args($postarr, $defaults);
 	$postarr = sanitize_post($postarr, 'db');
@@ -1381,10 +1381,12 @@
 
 	$current_guid = get_post_field( 'guid', $post_ID );
 
-	if ( 'page' == $post_type )
-		clean_page_cache($post_ID);
-	else
-		clean_post_cache($post_ID);
+	if ( $clean_cache ) {
+		if ( 'page' == $post_type )
+			clean_page_cache($post_ID);
+		else
+			clean_post_cache($post_ID);
+	}
 
 	// Set GUID
 	if ( !$update && '' == $current_guid )
@@ -3297,6 +3299,8 @@
 	if ( isset($post['post_type']) && 'revision' == $post_post['type'] )
 		return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
 
+	// In current implemenation, we're always inserting a new row without taxonomy or meta
+	$post['clean_cache'] = false;
 	$post = _wp_post_revision_fields( $post, $autosave );
 
 	$revision_id = wp_insert_post( $post );
