Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 23294)
+++ wp-includes/post.php	(working copy)
@@ -927,6 +927,7 @@
 
 	// Args prefixed with an underscore are reserved for internal use.
 	$defaults = array(
+		'object_type' => array( 'post', 'page' ),
 		'label' => false,
 		'label_count' => false,
 		'exclude_from_search' => null,
@@ -944,6 +945,7 @@
 
 	$post_status = sanitize_key($post_status);
 	$args->name = $post_status;
+	$args->object_type = array_unique( (array) $args->object_type );
 
 	if ( null === $args->public && null === $args->internal && null === $args->protected && null === $args->private )
 		$args->internal = true;
@@ -984,6 +986,33 @@
 }
 
 /**
+ * Add an already registered post_status to an object type.
+ *
+ * @package WordPress
+ * @subpackage Post
+ * @since 3.6.0
+ * @uses $wp_post_statuses Modifies post status object
+ *
+ * @param string $post_status Name of post status object
+ * @param string $object_type Name of the object type
+ * @return bool True if successful, false if not
+ */
+function register_post_status_for_object_type( $post_status, $object_type ) {
+	global $wp_post_statuses;
+
+	if ( ! isset( $wp_post_statuses[ $post_status ] ) )
+		return false;
+
+	if ( ! get_post_type_object( $object_type ) )
+		return false;
+
+	if ( ! in_array( $object_type, $wp_post_statuses[ $post_status ]->object_type ) )
+		$wp_post_statuses[ $post_status ]->object_type[] = $object_type;
+
+	return true;
+}
+
+/**
  * Retrieve a post status object by name
  *
  * @package WordPress
