Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 14413)
+++ wp-includes/category-template.php	(working copy)
@@ -230,47 +230,7 @@
 	return apply_filters( 'the_category', $thelist, $separator, $parents );
 }
 
-
 /**
- * Check if the current post in within any of the given categories.
- *
- * The given categories are checked against the post's categories' term_ids, names and slugs.
- * Categories given as integers will only be checked against the post's categories' term_ids.
- *
- * Prior to v2.5 of WordPress, category names were not supported.
- * Prior to v2.7, category slugs were not supported.
- * Prior to v2.7, only one category could be compared: in_category( $single_category ).
- * Prior to v2.7, this function could only be used in the WordPress Loop.
- * As of 2.7, the function can be used anywhere if it is provided a post ID or post object.
- *
- * @since 1.2.0
- *
- * @uses is_object_in_term()
- *
- * @param int|string|array $category. Category ID, name or slug, or array of said.
- * @param int|post object Optional.  Post to check instead of the current post. @since 2.7.0
- * @return bool True if the current post is in any of the given categories.
- */
-function in_category( $category, $_post = null ) {
-	if ( empty( $category ) )
-		return false;
-
-	if ( $_post ) {
-		$_post = get_post( $_post );
-	} else {
-		$_post =& $GLOBALS['post'];
-	}
-
-	if ( !$_post )
-		return false;
-
-	$r = is_object_in_term( $_post->ID, 'category', $category );
-	if ( is_wp_error( $r ) )
-		return false;
-	return $r;
-}
-
-/**
  * Display the category list for the post.
  *
  * @since 0.71
@@ -969,35 +929,63 @@
 }
 
 /**
- * Check if the current post has any of given tags.
+ * Check if the current post has any of given categories.
  *
- * The given tags are checked against the post's tags' term_ids, names and slugs.
- * Tags given as integers will only be checked against the post's tags' term_ids.
- * If no tags are given, determines if post has any tags.
+ * @since 3.0.0
  *
- * Prior to v2.7 of WordPress, tags given as integers would also be checked against the post's tags' names and slugs (in addition to term_ids)
- * Prior to v2.7, this function could only be used in the WordPress Loop.
- * As of 2.7, the function can be used anywhere if it is provided a post ID or post object.
+ * @uses is_object_in_term()
+ * @see has_term()
  *
+ * @param string|int|array $tag Optional. The category name/category_id/slug or array of them to check for.
+ * @param int|post object Optional.  Post to check instead of the current post.
+ * @return bool True if the current post has any of the the given categories (or any category, if no category specified).
+ */
+function has_category( $category = '', $_post = null ) {
+	return has_term( $category, 'category', $_post );
+}
+
+/**
+ * Check if the current post has any of given tags.
+ *
  * @since 2.6.0
  *
  * @uses is_object_in_term()
+ * @see has_term()
  *
- * @param string|int|array $tag Optional. The tag name/term_id/slug or array of them to check for.
- * @param int|post object Optional.  Post to check instead of the current post. @since 2.7.0
+ * @param string|int|array $tag Optional. The tag name/tag_id/slug or array of them to check for.
+ * @param int|post object Optional.  Post to check instead of the current post.
  * @return bool True if the current post has any of the the given tags (or any tag, if no tag specified).
  */
 function has_tag( $tag = '', $_post = null ) {
-	if ( $_post ) {
+	return has_term( $tag, 'post_tag', $_post );
+}
+
+
+/**
+ * Check if the current post has any of given terms.
+ *
+ * The given terms are checked against the post's terms' term_ids, names and slugs.
+ * Terms given as integers will only be checked against the post's terms' term_ids.
+ * If no terms are given, determines if post has any terms.
+ *
+ * @since 3.0.0
+ *
+ * @uses is_object_in_term()
+ *
+ * @param string|int|array $tag Optional. The term name/term_id/slug or array of them to check for.
+ * @param int|post object Optional.  Post to check instead of the current post. @since 2.7.0
+ * @return bool True if the current post has any of the the given tags (or any tag, if no tag specified).
+ */
+function has_term( $term = '', $taxonomy = '', $_post = null ) {
+	if ( $_post )
 		$_post = get_post( $_post );
-	} else {
+	else
 		$_post =& $GLOBALS['post'];
-	}
 
 	if ( !$_post )
 		return false;
 
-	$r = is_object_in_term( $_post->ID, 'post_tag', $tag );
+	$r = is_object_in_term( $_post->ID, $taxonomy, $term );
 	if ( is_wp_error( $r ) )
 		return false;
 	return $r;
Index: wp-admin/includes/deprecated.php
===================================================================
--- wp-admin/includes/deprecated.php	(revision 14413)
+++ wp-admin/includes/deprecated.php	(working copy)
@@ -162,4 +162,31 @@
 	return unregister_setting( $option_group, $option_name, $sanitize_callback );
 }
 
+/**
+ * Check if the current post in within any of the given categories.
+ *
+ * The given categories are checked against the post's categories' term_ids, names and slugs.
+ * Categories given as integers will only be checked against the post's categories' term_ids.
+ *
+ * Prior to v2.5 of WordPress, category names were not supported.
+ * Prior to v2.7, category slugs were not supported.
+ * Prior to v2.7, only one category could be compared: in_category( $single_category ).
+ * Prior to v2.7, this function could only be used in the WordPress Loop.
+ * As of 2.7, the function can be used anywhere if it is provided a post ID or post object.
+ *
+ * @since 1.2.0
+ * @deprecated 3.0.0
+ * @deprecated Use has_category()
+ * @see has_category()
+ *
+ * @uses is_object_in_term()
+ *
+ * @param int|string|array $category. Category ID, name or slug, or array of said.
+ * @param int|post object Optional.  Post to check instead of the current post. @since 2.7.0
+ * @return bool True if the current post is in any of the given categories.
+ */
+function in_category( $category, $_post = null ) {
+	_deprecated_function( __FUNCTION__, '3.0', 'has_category()' );
+	return has_category( $category, $_post );
+}
 ?>
\ No newline at end of file
