Index: src/wp-admin/includes/meta-boxes.php
===================================================================
--- src/wp-admin/includes/meta-boxes.php	(revision 40354)
+++ src/wp-admin/includes/meta-boxes.php	(working copy)
@@ -37,13 +37,16 @@
 
 <div id="minor-publishing-actions">
 <div id="save-action">
-<?php if ( 'publish' != $post->post_status && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?>
-<input <?php if ( 'private' == $post->post_status ) { ?>style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save Draft'); ?>" class="button" />
+	<?php
+	$btnHideArray = array("publish","future","private");
+
+	if ( !in_array( $post->post_status, $btnHideArray ) )
+	{
+		$phrase = 'Save '.ucfirst($post->post_status);
+		echo '<input type="submit" name="save" id="save-post" value="'. __($phrase) .'" class="button" />';
+	}
+	?>
 <span class="spinner"></span>
-<?php } elseif ( 'pending' == $post->post_status && $can_publish ) { ?>
-<input type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save as Pending'); ?>" class="button" />
-<span class="spinner"></span>
-<?php } ?>
 </div>
 <?php if ( is_post_type_viewable( $post_type_object ) ) : ?>
 <div id="preview-action">
@@ -77,27 +80,21 @@
 <div class="misc-pub-section misc-pub-post-status">
 <?php _e( 'Status:' ) ?> <span id="post-status-display"><?php
 
-switch ( $post->post_status ) {
-	case 'private':
-		_e('Privately Published');
-		break;
-	case 'publish':
-		_e('Published');
-		break;
-	case 'future':
-		_e('Scheduled');
-		break;
-	case 'pending':
-		_e('Pending Review');
-		break;
-	case 'draft':
-	case 'auto-draft':
-		_e('Draft');
-		break;
-}
+		global $wp_post_statuses, $allowed_post_status; 
+
+		foreach($wp_post_statuses as $key => $wp_post_status){ 
+				if($key == $post->post_status && $wp_post_status->show_in_admin_status_list){ 
+						$allowed_post_status = true; 
+						echo __($wp_post_status->label); 
+				} 
+				elseif($key == $post->post_status){ 
+						$allowed_post_status = false; 
+						echo __($wp_post_status->label); 
+				} 
+		} 
 ?>
 </span>
-<?php if ( 'publish' == $post->post_status || 'private' == $post->post_status || $can_publish ) { ?>
+<?php if ( $allowed_post_status && ('publish' == $post->post_status || 'private' == $post->post_status || $can_publish )) { ?> 
 <a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit status' ); ?></span></a>
 
 <div id="post-status-select" class="hide-if-js">
@@ -104,19 +101,32 @@
 <input type="hidden" name="hidden_post_status" id="hidden_post_status" value="<?php echo esc_attr( ('auto-draft' == $post->post_status ) ? 'draft' : $post->post_status); ?>" />
 <label for="post_status" class="screen-reader-text"><?php _e( 'Set status' ) ?></label>
 <select name="post_status" id="post_status">
-<?php if ( 'publish' == $post->post_status ) : ?>
-<option<?php selected( $post->post_status, 'publish' ); ?> value='publish'><?php _e('Published') ?></option>
-<?php elseif ( 'private' == $post->post_status ) : ?>
-<option<?php selected( $post->post_status, 'private' ); ?> value='publish'><?php _e('Privately Published') ?></option>
-<?php elseif ( 'future' == $post->post_status ) : ?>
-<option<?php selected( $post->post_status, 'future' ); ?> value='future'><?php _e('Scheduled') ?></option>
-<?php endif; ?>
-<option<?php selected( $post->post_status, 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
-<?php if ( 'auto-draft' == $post->post_status ) : ?>
-<option<?php selected( $post->post_status, 'auto-draft' ); ?> value='draft'><?php _e('Draft') ?></option>
-<?php else : ?>
-<option<?php selected( $post->post_status, 'draft' ); ?> value='draft'><?php _e('Draft') ?></option>
-<?php endif; ?>
+<?php 
+		$ppf = array('publish','private','future'); 
+		$ad = array('auto-draft','draft'); 
+		$adSet = false; 
+
+		foreach($wp_post_statuses as $key => $wp_post_status){ 
+				$show = false; 
+				if($wp_post_status->show_in_admin_status_list){ 
+						if(in_array($key, $ppf)){ 
+								// Show just one of those 
+								if($post->post_status == $key){ 
+											$show = true; 
+								} 
+						} elseif($key == 'trash'){ 
+								// Don't show 
+								$show = false; 
+						} else{ 
+								$show = true; 
+						} 
+
+						if($show){ 
+								echo "<option ".selected( $post->post_status, $key, false )."  value='".$key."'>". __($wp_post_status->label) ."</option>"; 
+						} 
+				} 
+		} 
+?> 
 </select>
  <a href="#post_status" class="save-post-status hide-if-no-js button"><?php _e('OK'); ?></a>
  <a href="#post_status" class="cancel-post-status hide-if-no-js button-cancel"><?php _e('Cancel'); ?></a>
Index: src/wp-admin/js/post.js
===================================================================
--- src/wp-admin/js/post.js	(revision 40354)
+++ src/wp-admin/js/post.js	(working copy)
@@ -797,7 +797,8 @@
 				if ( $('option:selected', postStatus).val() == 'pending' ) {
 					$('#save-post').show().val( postL10n.savePending );
 				} else {
-					$('#save-post').show().val( postL10n.saveDraft );
+					var phrase = 'Save '+$('option:selected', postStatus).val();
+					$('#save-post').show().val(phrase);
 				}
 			}
 			return true;
