diff --git a/src/wp-includes/class.wp-dependencies.php b/src/wp-includes/class.wp-dependencies.php
index 9ed26568ed..a05dc14b00 100644
--- a/src/wp-includes/class.wp-dependencies.php
+++ b/src/wp-includes/class.wp-dependencies.php
@@ -83,6 +83,8 @@ class WP_Dependencies {
 	 */
 	private $all_queued_deps;
 
+	private $all_seen_deps;
+
 	/**
 	 * Processes the items and dependencies.
 	 *
@@ -102,7 +104,8 @@ class WP_Dependencies {
 		 * If nothing is passed, print the queue. If a string is passed,
 		 * print that item. If an array is passed, print those items.
 		 */
-		$handles = false === $handles ? $this->queue : (array) $handles;
+		$handles             = false === $handles ? $this->queue : (array) $handles;
+		$this->all_seen_deps = array();
 		$this->all_deps( $handles );
 
 		foreach ( $this->to_do as $key => $handle ) {
@@ -167,6 +170,11 @@ class WP_Dependencies {
 			$handle       = $handle_parts[0];
 			$queued       = in_array( $handle, $this->to_do, true );
 
+			if ( in_array( $handle, $this->all_seen_deps, true ) ) {
+				continue;
+			}
+			$this->all_seen_deps[] = $handle;
+
 			if ( in_array( $handle, $this->done, true ) ) { // Already done.
 				continue;
 			}
