Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 24646)
+++ wp-admin/includes/post.php	(working copy)
@@ -1296,12 +1296,24 @@
  * @subpackage Post_Revisions
  * @since 2.6.0
  *
+ * @uses get_post()
  * @uses _wp_translate_postdata()
+ * @uses is_wp_error()
+ * @uses get_current_user_id()
+ * @uses wp_get_post_autosave()
  * @uses _wp_post_revision_fields()
+ * @uses apply_filters()
+ * @uses normalize_whitespace()
+ * @uses wp_update_post()
+ * @uses wp_unslash()
+ * @uses _wp_put_post_revision()
  *
- * @return unknown
+ * @return mixed
  */
 function wp_create_post_autosave( $post_id ) {
+	if ( ! $post = get_post( $post_id ) )
+		return;
+
 	$translated = _wp_translate_postdata( true );
 	if ( is_wp_error( $translated ) )
 		return $translated;
@@ -1314,6 +1326,22 @@
 		$new_autosave['ID'] = $old_autosave->ID;
 		$new_autosave['post_author'] = $post_author;
 
+		// Check if post content has changed before autosaving
+		if ( is_array( $new_autosave ) && apply_filters( 'wp_save_post_revision_check_for_changes', true, $post, $new_autosave ) ) {
+			$post_has_changed = false;
+
+			foreach ( array_keys( _wp_post_revision_fields() ) as $field ) {
+				if ( normalize_whitespace( $new_autosave[ $field ] ) != normalize_whitespace( $post->{$field} ) ) {
+					$post_has_changed = true;
+					break;
+				}
+			}
+
+			// Don't save anything new if post is unchanged
+			if ( ! $post_has_changed )
+				return;
+		}
+
 		return wp_update_post( $new_autosave );
 	}
 
