Index: src/wp-includes/query.php
===================================================================
--- src/wp-includes/query.php	(revision 27411)
+++ src/wp-includes/query.php	(working copy)
@@ -3657,7 +3657,11 @@
 					$term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
 				}
 			} elseif ( $this->is_tag ) {
-				$term = get_term( $this->get( 'tag_id' ), 'post_tag' );
+				if ( $this->get( 'tag_id' ) ) {
+					$term = get_term( $this->get( 'tag_id' ), 'post_tag' );
+				} elseif ( $this->get( 'tag' ) ) {
+					$term = get_term_by( 'slug', $this->get( 'tag' ), 'post_tag' );
+				}
 			} else {
 				$tax_query_in_and = wp_list_filter( $this->tax_query->queries, array( 'operator' => 'NOT IN' ), 'NOT' );
 				$query = reset( $tax_query_in_and );
Index: tests/phpunit/tests/query.php
===================================================================
--- tests/phpunit/tests/query.php	(revision 27411)
+++ tests/phpunit/tests/query.php	(working copy)
@@ -87,4 +87,35 @@
 		$this->assertFalse( $query->get( 'nonexistent', false ) );
 		$this->assertTrue( $query->get( 'nonexistent', true ) );
 	}
+
+	/**
+	 * @ticket 26627
+	 */
+	function test_tag_queried_object() {
+		$slug = 'tag-slug-26627';
+		$this->factory->tag->create( array( 'slug' => $slug ) );
+		$tag = get_term_by( 'slug', $slug, 'post_tag' );
+
+		add_action( 'pre_get_posts', array( $this, '_tag_queried_object' ), 11 );
+
+		$this->go_to( get_term_link( $tag ) );
+
+		$this->assertQueryTrue( 'is_tag', 'is_archive' );
+		$this->assertNotEmpty( get_query_var( 'tag_id' ) );
+		$this->assertNotEmpty( get_query_var( 'tag' ) );
+		$this->assertEmpty( get_query_var( 'tax_query' ) );
+		$this->assertCount( 1, get_query_var( 'tag_slug__in' ) );
+		$this->assertEquals( get_queried_object(), $tag );
+
+		remove_action( 'pre_get_posts', array( $this, '_tag_queried_object' ), 11 );
+	}
+
+	function _tag_queried_object( &$query ) {
+		$tag = get_term_by( 'slug', 'tag-slug-26627', 'post_tag' );
+		$this->assertTrue( $query->is_tag() );
+		$this->assertTrue( $query->is_archive() );
+		$this->assertNotEmpty( $query->get( 'tag' ) );
+		$this->assertCount( 1, $query->get( 'tag_slug__in' ) );
+		$this->assertEquals( $query->get_queried_object(), $tag );
+	}
 }
\ No newline at end of file
