Index: src/wp-includes/taxonomy.php
===================================================================
--- src/wp-includes/taxonomy.php	(revision 30026)
+++ src/wp-includes/taxonomy.php	(working copy)
@@ -1804,8 +1804,13 @@
 	}
 
 	if ( ! empty( $args['slug'] ) ) {
-		$slug = sanitize_title( $args['slug'] );
-		$where .= " AND t.slug = '$slug'";
+		if ( is_array( $args['slug'] ) ) {
+			$slug = array_map( 'sanitize_title', $args['slug'] );
+			$where .= " AND t.slug IN ('" . implode( "', '", $slug ) . "')";
+		} else {
+			$slug = sanitize_title( $args['slug'] );
+			$where .= " AND t.slug = '$slug'";
+		}
 	}
 
 	if ( ! empty( $args['name__like'] ) ) {
Index: tests/phpunit/tests/term/getTerms.php
===================================================================
--- tests/phpunit/tests/term/getTerms.php	(revision 30026)
+++ tests/phpunit/tests/term/getTerms.php	(working copy)
@@ -352,6 +352,31 @@
 		add_filter( 'wp_update_term_parent', 'wp_check_term_hierarchy_for_loops', 10, 3 );
 	}
 
+	function test_get_terms_by_slug() {
+		$foo = $this->factory->tag->create( array( 'slug' => 'foo' ) );
+
+		$found = get_terms( 'post_tag', array(
+			'hide_empty' => false,
+			'fields' => 'ids',
+			'slug' => 'foo',
+		) );
+
+		$this->assertEquals( array( $foo ), $found );
+	}
+
+	function test_get_terms_by_multiple_slugs() {
+		$foo = $this->factory->tag->create( array( 'slug' => 'foo' ) );
+		$bar = $this->factory->tag->create( array( 'slug' => 'bar' ) );
+
+		$found = get_terms( 'post_tag', array(
+			'hide_empty' => false,
+			'fields' => 'ids',
+			'slug' => array( 'foo', 'bar' )
+		) );
+
+		$this->assertEquals( array( $foo, $bar ), $found );
+	}
+
 	public function test_get_terms_hierarchical_tax_hide_empty_false_fields_ids() {
 		// Set up a clean taxonomy.
 		$tax = 'hierarchical_fields';
