Index: edit-form-advanced.php
===================================================================
--- edit-form-advanced.php	(revision 23230)
+++ edit-form-advanced.php	(working copy)
@@ -29,38 +29,35 @@
 	wp_enqueue_media( array( 'post' => $post_ID ) );
 }
 
+$post_type_object = get_post_type_object($post_type);
+$singular_name = $post_type_object->labels->singular_name;
+
 $messages = array();
-$messages['post'] = array(
-	 0 => '', // Unused. Messages start at index 1.
-	 1 => sprintf( __('Post updated. <a href="%s">View post</a>'), esc_url( get_permalink($post_ID) ) ),
-	 2 => __('Custom field updated.'),
-	 3 => __('Custom field deleted.'),
-	 4 => __('Post updated.'),
-	/* translators: %s: date and time of the revision */
-	 5 => isset($_GET['revision']) ? sprintf( __('Post restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
-	 6 => sprintf( __('Post published. <a href="%s">View post</a>'), esc_url( get_permalink($post_ID) ) ),
-	 7 => __('Post saved.'),
-	 8 => sprintf( __('Post submitted. <a target="_blank" href="%s">Preview post</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
-	 9 => sprintf( __('Post scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview post</a>'),
-		// translators: Publish box date format, see http://php.net/date
-		date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
-	10 => sprintf( __('Post draft updated. <a target="_blank" href="%s">Preview post</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
+$messages[$post_type] = array(
+	0 => '', // Unused. Messages start at index 1.
+	1 => sprintf( __('%1$s updated. <a href="%2$s">View %1$s</a>'), $singular_name, esc_url( get_permalink($post_ID) ) ),
+	2 => __('Custom field updated.'),
+	3 => __('Custom field deleted.'),
+	4 => sprintf( __('%s updated.'), $singular_name),
+	5 => isset($_GET['revision']) ? sprintf( __('%1$s restored to revision from %2$s'), $singular_name, wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
+	6 => sprintf( __('%1$s published. <a href="%2$s">View %1$s</a>'), $singular_name, esc_url( get_permalink($post_ID) ) ),
+	7 => __('Page saved.'),
+	8 => sprintf( __('%1$s submitted. <a target="_blank" href="%s">Preview %1$s</a>'), $singular_name, esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
+	9 => sprintf( __('%1$s scheduled for: <strong>%2$s</strong>. <a target="_blank" href="%3$s">Preview %1$s</a>'), $singular_name, date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
+	10 => sprintf( __('%1$s draft updated. <a target="_blank" href="%2$s">Preview %1$s</a>'), $singular_name, esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
 );
-$messages['page'] = array(
-	 0 => '', // Unused. Messages start at index 1.
-	 1 => sprintf( __('Page updated. <a href="%s">View page</a>'), esc_url( get_permalink($post_ID) ) ),
-	 2 => __('Custom field updated.'),
-	 3 => __('Custom field deleted.'),
-	 4 => __('Page updated.'),
-	 5 => isset($_GET['revision']) ? sprintf( __('Page restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
-	 6 => sprintf( __('Page published. <a href="%s">View page</a>'), esc_url( get_permalink($post_ID) ) ),
-	 7 => __('Page saved.'),
-	 8 => sprintf( __('Page submitted. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
-	 9 => sprintf( __('Page scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview page</a>'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
-	10 => sprintf( __('Page draft updated. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
-);
-$messages['attachment'] = array_fill( 1, 10, __( 'Media attachment updated.' ) ); // Hack, for now.
+// Overwrite when needed
+if ( ! $post_type_object->publicly_queryable ) {
+	$messages[$post_type] = array(
+		1 => sprintf( __('%1$s updated.'), $singular_name ),
+		6 => sprintf( __('%1$s published.'), $singular_name ),
+		8 => sprintf( __('%1$s submitted.'), $singular_name  ),
+		9 => sprintf( __('%1$s scheduled for: <strong>%2$s</strong>. '), $singular_name, date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ) ),
+		10 => sprintf( __('%1$s draft updated.'), $singular_name ),
+	);
+}
 
+$messages[$post_type] = array_map( 'trim', $messages[$post_type] );
 $messages = apply_filters( 'post_updated_messages', $messages );
 
 $message = false;
