Index: query.php
===================================================================
--- query.php	(revision 18753)
+++ query.php	(working copy)
@@ -249,10 +249,10 @@
  * @since 2.3.0
  * @uses $wp_query
  *
- * @param mixed $slug Optional. Tag slug or array of slugs.
+ * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
  * @return bool
  */
-function is_tag( $slug = '' ) {
+function is_tag( $tag = '' ) {
 	global $wp_query;
 
 	if ( ! isset( $wp_query ) ) {
@@ -260,7 +260,7 @@
 		return false;
 	}
 
-	return $wp_query->is_tag( $slug );
+	return $wp_query->is_tag( $tag );
 }
 
 /**
@@ -3117,22 +3117,26 @@
 	 *
 	 * @since 3.1.0
 	 *
-	 * @param mixed $slug Optional. Tag slug or array of slugs.
+	 * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
 	 * @return bool
 	 */
-	function is_tag( $slug = '' ) {
+	function is_tag( $tag = '' ) {
 		if ( !$this->is_tag )
 			return false;
 
-		if ( empty( $slug ) )
+		if ( empty($tag) )
 			return true;
 
 		$tag_obj = $this->get_queried_object();
 
-		$slug = (array) $slug;
+		$tag = (array) $tag;
 
-		if ( in_array( $tag_obj->slug, $slug ) )
+		if ( in_array( $tag_obj->term_id, $tag ) )
 			return true;
+		elseif ( in_array( $tag_obj->name, $tag ) )
+			return true;
+		elseif ( in_array( $tag_obj->slug, $tag ) )
+			return true;
 
 		return false;
 	}
