diff --git a/src/wp-admin/edit-form-advanced.php b/src/wp-admin/edit-form-advanced.php
index ebda7a3..e81bfb9 100644
--- a/src/wp-admin/edit-form-advanced.php
+++ b/src/wp-admin/edit-form-advanced.php
@@ -134,8 +134,9 @@ if ( $autosave && mysql2date( 'U', $autosave->post_modified_gmt, false ) > mysql
 		}
 	}
 	// If this autosave isn't different from the current post, begone.
-	if ( ! $notice )
+	if ( ! apply_filters( 'autosave_is_different_notice', $notice, $autosave, $post ) ) {
 		wp_delete_post_revision( $autosave->ID );
+	}
 	unset($autosave_field, $_autosave_field);
 }
 
diff --git a/src/wp-admin/includes/post.php b/src/wp-admin/includes/post.php
index d230667..bbb7952 100644
--- a/src/wp-admin/includes/post.php
+++ b/src/wp-admin/includes/post.php
@@ -1530,16 +1530,16 @@ function wp_create_post_autosave( $post_data ) {
 		$new_autosave['post_author'] = $post_author;
 
 		// If the new autosave has the same content as the post, delete the autosave.
-		$post = get_post( $post_id );
+		$post = get_post( $post_id, ARRAY_A );
 		$autosave_is_different = false;
 		foreach ( array_intersect( array_keys( $new_autosave ), array_keys( _wp_post_revision_fields() ) ) as $field ) {
-			if ( normalize_whitespace( $new_autosave[ $field ] ) != normalize_whitespace( $post->$field ) ) {
+			if ( normalize_whitespace( $new_autosave[ $field ] ) != normalize_whitespace( $post[ $field ] ) ) {
 				$autosave_is_different = true;
 				break;
 			}
 		}
 
-		if ( ! $autosave_is_different ) {
+		if ( ! apply_filters( 'autosave_is_different', $autosave_is_different, $new_autosave, $post ) ) {
 			wp_delete_post_revision( $old_autosave->ID );
 			return 0;
 		}
