Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 28515)
+++ wp-admin/includes/post.php	(working copy)
@@ -1175,6 +1175,8 @@
 	if ( ! $post )
 		return '';
 
+	$orig_permalink = sanitize_title( $post->post_title );
+
 	list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug);
 
 	if ( current_user_can( 'read_post', $post->ID ) ) {
@@ -1224,6 +1226,23 @@
 		}
 	}
 
+	// Permalink conflict error messages.
+	if ( $new_slug && $new_slug != $post_name_abridged ) {
+		//error message when editing a permalink
+		global $wpdb;
+		$conflicting_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_name = %s;", $new_slug ) );
+		if ( $conflicting_post->post_status == 'trash' ) {
+			echo '<div id="message" class="error"><p>';
+			echo sprintf( __( 'There was a permalink conflict with the post "%s" in the trash. %s' ), esc_html( $post->post_title ), '<a href="edit.php?post_status=trash&post_type=' . $post->post_type . '&s=' . $post->post_title . '">View Trash</a>');
+			echo '</p></div>';
+		}
+	}elseif ( $orig_permalink != $post_name_abridged && $_GET['message'] == '6' ) {
+		//error message on a newly created post
+		echo '<div id="message" class="error"><p>';
+		echo sprintf( __( 'There was a permalink conflict with the post "%s" in the trash. %s' ), esc_html( $post->post_title ), '<a href="edit.php?post_status=trash&post_type=' . $post->post_type . '&s=' . $post->post_title . '">View Trash</a>' );
+		echo '</p></div>';
+	}
+
 	$post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
 	$display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink);
 
