Index: wp-admin/includes/dashboard.php
===================================================================
--- wp-admin/includes/dashboard.php	(revision 19734)
+++ wp-admin/includes/dashboard.php	(working copy)
@@ -75,11 +75,11 @@
 		wp_add_dashboard_widget( 'dashboard_plugins', __( 'Plugins' ), 'wp_dashboard_plugins' );
 
 	// QuickPress Widget
-	if ( is_blog_admin() && current_user_can('edit_posts') )
+	if ( is_blog_admin() && current_user_can( 'edit_posts' ) && post_type_exists( 'post' ) )
 		wp_add_dashboard_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press' );
 
 	// Recent Drafts
-	if ( is_blog_admin() && current_user_can('edit_posts') )
+	if ( is_blog_admin() && current_user_can( 'edit_posts' ) && post_type_exists( 'post' ) )
 		wp_add_dashboard_widget( 'dashboard_recent_drafts', __('Recent Drafts'), 'wp_dashboard_recent_drafts' );
 
 	// Primary feed (Dev Blog) Widget
@@ -248,13 +248,18 @@
 function wp_dashboard_right_now() {
 	global $wp_registered_sidebars;
 
-	$num_posts = wp_count_posts( 'post' );
-	$num_pages = wp_count_posts( 'page' );
+	if ( post_type_exists( 'post' ) )
+		$num_posts = wp_count_posts( 'post' );
 
-	$num_cats  = wp_count_terms('category');
+	if ( post_type_exists( 'page' ) )
+		$num_pages = wp_count_posts( 'page' );
 
-	$num_tags = wp_count_terms('post_tag');
+	if ( taxonomy_exists( 'category' ) )
+		$num_cats = wp_count_terms( 'category' );
 
+	if ( taxonomy_exists( 'post_tag' ) )
+		$num_tags = wp_count_terms( 'post_tag' );
+
 	$num_comm = wp_count_comments( );
 
 	echo "\n\t".'<div class="table table_content">';
@@ -262,16 +267,18 @@
 	echo "\n\t".'<tr class="first">';
 
 	// Posts
-	$num = number_format_i18n( $num_posts->publish );
-	$text = _n( 'Post', 'Posts', intval($num_posts->publish) );
-	if ( current_user_can( 'edit_posts' ) ) {
-		$num = "<a href='edit.php'>$num</a>";
-		$text = "<a href='edit.php'>$text</a>";
+	if ( post_type_exists( 'post' ) ) {
+		$num = number_format_i18n( $num_posts->publish );
+		$text = _n( 'Post', 'Posts', intval($num_posts->publish) );
+		if ( current_user_can( 'edit_posts' ) ) {
+			$num = "<a href='edit.php'>$num</a>";
+			$text = "<a href='edit.php'>$text</a>";
+		}
+		echo '<td class="first b b-posts">' . $num . '</td>';
+		echo '<td class="t posts">' . $text . '</td>';
+
+		echo '</tr><tr>';
 	}
-	echo '<td class="first b b-posts">' . $num . '</td>';
-	echo '<td class="t posts">' . $text . '</td>';
-
-	echo '</tr><tr>';
 	/* TODO: Show status breakdown on hover
 	if ( $can_edit_pages && !empty($num_pages->publish) ) { // how many pages is not exposed in feeds. Don't show if !current_user_can
 		$post_type_texts[] = '<a href="edit-pages.php">'.sprintf( _n( '%s page', '%s pages', $num_pages->publish ), number_format_i18n( $num_pages->publish ) ).'</a>';
@@ -290,40 +297,47 @@
 	*/
 
 	// Pages
-	$num = number_format_i18n( $num_pages->publish );
-	$text = _n( 'Page', 'Pages', $num_pages->publish );
-	if ( current_user_can( 'edit_pages' ) ) {
-		$num = "<a href='edit.php?post_type=page'>$num</a>";
-		$text = "<a href='edit.php?post_type=page'>$text</a>";
+	if ( post_type_exists( 'page' ) ) {
+		$num = number_format_i18n( $num_pages->publish );
+		$text = _n( 'Page', 'Pages', $num_pages->publish );
+		if ( current_user_can( 'edit_pages' ) ) {
+			$num = "<a href='edit.php?post_type=page'>$num</a>";
+			$text = "<a href='edit.php?post_type=page'>$text</a>";
+		}
+		echo '<td class="first b b_pages">' . $num . '</td>';
+		echo '<td class="t pages">' . $text . '</td>';
+
+		echo '</tr><tr>';
 	}
-	echo '<td class="first b b_pages">' . $num . '</td>';
-	echo '<td class="t pages">' . $text . '</td>';
 
-	echo '</tr><tr>';
+	// Categories
+	if ( taxonomy_exists( 'category' ) ) {
+		$num = number_format_i18n( $num_cats );
+		$text = _n( 'Category', 'Categories', $num_cats );
+		if ( current_user_can( 'manage_categories' ) ) {
+			$num = "<a href='edit-tags.php?taxonomy=category'>$num</a>";
+			$text = "<a href='edit-tags.php?taxonomy=category'>$text</a>";
+		}
+		echo '<td class="first b b-cats">' . $num . '</td>';
+		echo '<td class="t cats">' . $text . '</td>';
 
-	// Categories
-	$num = number_format_i18n( $num_cats );
-	$text = _n( 'Category', 'Categories', $num_cats );
-	if ( current_user_can( 'manage_categories' ) ) {
-		$num = "<a href='edit-tags.php?taxonomy=category'>$num</a>";
-		$text = "<a href='edit-tags.php?taxonomy=category'>$text</a>";
+		echo '</tr><tr>';
 	}
-	echo '<td class="first b b-cats">' . $num . '</td>';
-	echo '<td class="t cats">' . $text . '</td>';
 
-	echo '</tr><tr>';
+	// Tags
+	if ( taxonomy_exists( 'post_tag' ) ) {
+		$num = number_format_i18n( $num_tags );
+		$text = _n( 'Tag', 'Tags', $num_tags );
+		if ( current_user_can( 'manage_categories' ) ) {
+			$num = "<a href='edit-tags.php'>$num</a>";
+			$text = "<a href='edit-tags.php'>$text</a>";
+		}
+		echo '<td class="first b b-tags">' . $num . '</td>';
+		echo '<td class="t tags">' . $text . '</td>';
 
-	// Tags
-	$num = number_format_i18n( $num_tags );
-	$text = _n( 'Tag', 'Tags', $num_tags );
-	if ( current_user_can( 'manage_categories' ) ) {
-		$num = "<a href='edit-tags.php'>$num</a>";
-		$text = "<a href='edit-tags.php'>$text</a>";
+		echo "</tr>";
 	}
-	echo '<td class="first b b-tags">' . $num . '</td>';
-	echo '<td class="t tags">' . $text . '</td>';
 
-	echo "</tr>";
 	do_action('right_now_content_table_end');
 	echo "\n\t</table>\n\t</div>";
 
@@ -546,10 +560,12 @@
 
 		<script type="text/javascript">edCanvas = document.getElementById('content');edInsertContent = null;</script>
 
+		<?php if ( is_object_in_taxonomy( $post->post_type, 'post_tag' ) ) : ?>
 		<h4><label for="tags-input"><?php _e('Tags') ?></label></h4>
 		<div class="input-text-wrap">
 			<input type="text" name="tags_input" id="tags-input" tabindex="3" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
 		</div>
+		<?php endif; ?>
 
 		<p class="submit">
 			<input type="hidden" name="action" id="quickpost-action" value="post-quickpress-save" />
Index: wp-includes/taxonomy.php
===================================================================
--- wp-includes/taxonomy.php	(revision 19734)
+++ wp-includes/taxonomy.php	(working copy)
@@ -1651,7 +1651,7 @@
  *
  * @param string $taxonomy Taxonomy name
  * @param array|string $args Overwrite defaults. See get_terms()
- * @return int How many terms are in $taxonomy
+ * @return int|WP_Error How many terms are in $taxonomy. WP_Error if $taxonomy does not exist.
  */
 function wp_count_terms( $taxonomy, $args = array() ) {
 	$defaults = array('hide_empty' => false);
