Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 22745)
+++ wp-admin/includes/post.php	(working copy)
@@ -53,18 +53,22 @@
 
 	$ptype = get_post_type_object( $post_data['post_type'] );
 	if ( isset($post_data['user_ID']) && ($post_data['post_author'] != $post_data['user_ID']) ) {
-		if ( !current_user_can( $ptype->cap->edit_others_posts ) ) {
-			if ( 'page' == $post_data['post_type'] ) {
-				return new WP_Error( 'edit_others_pages', $update ?
-					__( 'You are not allowed to edit pages as this user.' ) :
-					__( 'You are not allowed to create pages as this user.' )
-				);
-			} else {
-				return new WP_Error( 'edit_others_posts', $update ?
-					__( 'You are not allowed to edit posts as this user.' ) :
-					__( 'You are not allowed to create posts as this user.' )
-				);
+		if ( $update ) {
+			if ( ! current_user_can( $ptype->cap->edit_post, $post_data['ID'] ) ) {
+				if ( 'page' == $post_data['post_type'] ) {
+					return new WP_Error( 'edit_others_pages', __( 'You are not allowed to edit pages as this user.' ) );
+				} else {
+					return new WP_Error( 'edit_others_posts', __( 'You are not allowed to edit posts as this user.' ) );
+				}
 			}
+		} else {
+			if ( ! current_user_can( $ptype->cap->edit_others_posts )  ) {
+				if ( 'page' == $post_data['post_type'] ) {
+					return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) );
+				} else {
+					return new WP_Error( 'edit_others_posts', __( 'You are not allowed to create posts as this user.' ) );
+				}
+			}
 		}
 	}
 
