diff --git src/wp-admin/includes/dashboard.php src/wp-admin/includes/dashboard.php
index 89047ba..8359b2f 100644
--- src/wp-admin/includes/dashboard.php
+++ src/wp-admin/includes/dashboard.php
@@ -1365,11 +1365,54 @@ function wp_dashboard_primary() {
  * @param array  $feeds     Array of RSS feeds.
  */
 function wp_dashboard_primary_output( $widget_id, $feeds ) {
+
+	$displayed_links = array();
+
 	foreach ( $feeds as $type => $args ) {
 		$args['type'] = $type;
 		echo '<div class="rss-widget">';
-			wp_widget_rss_output( $args['url'], $args );
-		echo "</div>";
+
+		$rss_entries = wp_widget_rss_get_entries( $args['url'], $args );
+
+		if ( is_wp_error( $rss_entries ) ) {
+			if ( is_admin() || current_user_can( 'manage_options' ) ) {
+				echo '<p><strong>' . __( 'RSS Error:' ) . '</strong> ' . $rss->get_error_message() . '</p>';
+			}
+			return;
+		}
+
+		$items = (int) $args['items'];
+		if ( $items < 1 || 20 < $items ) {
+			$items = 10;
+		}
+
+		$count = 0;
+
+		echo '<ul>';
+		foreach ( $rss_entries as $item ) {
+
+			// Skip duplicate links.
+			if ( in_array( $item['link'], $displayed_links ) ) {
+				continue;
+			}
+
+			if ( '' === $item['link'] ) {
+				echo "<li>{$item['title']}{$item['date']}{$item['summary']}{$item['author']}</li>";
+			} elseif ( $item['show_summary'] ) {
+				echo "<li><a class='rsswidget' href='{$item['link']}'>{$item['title']}</a>{$item['date']}{$item['summary']}{$item['author']}</li>";
+			} else {
+				echo "<li><a class='rsswidget' href='{$item['link']}'>{$item['title']}</a>{$item['date']}{$item['author']}</li>";
+			}
+
+			$displayed_links[] = $item['link'];
+			$count++;
+			if ( $items <= $count ) {
+				break;
+			}
+		}
+		echo '</ul>';
+
+		echo '</div>';
 	}
 }
 
diff --git src/wp-includes/widgets.php src/wp-includes/widgets.php
index 3db5fb8..d15bd61 100644
--- src/wp-includes/widgets.php
+++ src/wp-includes/widgets.php
@@ -1373,48 +1373,53 @@ function _wp_remove_unregistered_widgets( $sidebars_widgets, $whitelist = array(
 }
 
 /**
- * Display the RSS entries in a list.
+ * Return the RSS entries in an array
  *
- * @since 2.5.0
+ * @since X.X.X
  *
  * @param string|array|object $rss RSS url.
  * @param array $args Widget arguments.
  */
-function wp_widget_rss_output( $rss, $args = array() ) {
+function wp_widget_rss_get_entries( $rss, $args = array() ) {
+
 	if ( is_string( $rss ) ) {
-		$rss = fetch_feed($rss);
-	} elseif ( is_array($rss) && isset($rss['url']) ) {
+		$rss = fetch_feed( $rss );
+	} elseif ( is_array( $rss ) && isset( $rss['url'] ) ) {
 		$args = $rss;
-		$rss = fetch_feed($rss['url']);
-	} elseif ( !is_object($rss) ) {
+		$rss = fetch_feed( $rss['url'] );
+	} elseif ( ! is_object( $rss ) ) {
 		return;
 	}
 
-	if ( is_wp_error($rss) ) {
-		if ( is_admin() || current_user_can('manage_options') )
-			echo '<p><strong>' . __( 'RSS Error:' ) . '</strong> ' . $rss->get_error_message() . '</p>';
-		return;
+	if ( is_wp_error( $rss ) ) {
+		return $rss;
 	}
 
-	$default_args = array( 'show_author' => 0, 'show_date' => 0, 'show_summary' => 0, 'items' => 0 );
+	$default_args = array(
+		'show_author'  => 0,
+		'show_date'    => 0,
+		'show_summary' => 0,
+		'items'        => 0,
+	);
 	$args = wp_parse_args( $args, $default_args );
 
-	$items = (int) $args['items'];
-	if ( $items < 1 || 20 < $items )
-		$items = 10;
 	$show_summary  = (int) $args['show_summary'];
 	$show_author   = (int) $args['show_author'];
 	$show_date     = (int) $args['show_date'];
 
-	if ( !$rss->get_item_quantity() ) {
-		echo '<ul><li>' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>';
+	if ( ! $rss->get_item_quantity() ) {
 		$rss->__destruct();
-		unset($rss);
-		return;
+		unset( $rss );
+		return new WP_Error(
+			'noitems',
+			__( 'An error has occurred, which probably means the feed is down. Try again later.' )
+		);
 	}
 
-	echo '<ul>';
-	foreach ( $rss->get_items( 0, $items ) as $item ) {
+	$maxitems = $rss->get_item_quantity();
+	$rss_entries = array();
+
+	foreach ( $rss->get_items( 0, $maxitems ) as $item ) {
 		$link = $item->get_link();
 		while ( stristr( $link, 'http' ) != $link ) {
 			$link = substr( $link, 1 );
@@ -1453,23 +1458,66 @@ function wp_widget_rss_output( $rss, $args = array() ) {
 		$author = '';
 		if ( $show_author ) {
 			$author = $item->get_author();
-			if ( is_object($author) ) {
+			if ( is_object( $author ) ) {
 				$author = $author->get_name();
 				$author = ' <cite>' . esc_html( strip_tags( $author ) ) . '</cite>';
 			}
 		}
 
-		if ( $link == '' ) {
-			echo "<li>$title{$date}{$summary}{$author}</li>";
-		} elseif ( $show_summary ) {
-			echo "<li><a class='rsswidget' href='$link'>$title</a>{$date}{$summary}{$author}</li>";
+		$rss_entries[] = array(
+			'title'   => $title,
+			'date'    => $date,
+			'summary' => $summary,
+			'author'  => $author,
+			'link'    => $link,
+		);
+
+	}
+
+	$rss->__destruct();
+	unset( $rss );
+
+	return $rss_entries;
+
+}
+
+/**
+ * Display the RSS entries in a list.
+ *
+ * @since 2.5.0
+ *
+ * @param string|array|object $rss RSS url.
+ * @param array $args Widget arguments.
+ */
+function wp_widget_rss_output( $rss, $args = array() ) {
+
+	$rss_entries = wp_widget_rss_get_entries( $rss, $args );
+
+	if ( is_wp_error( $rss_entries ) ) {
+		if ( is_admin() || current_user_can( 'manage_options' ) ) {
+			echo '<p><strong>' . __( 'RSS Error:' ) . '</strong> ' . $rss->get_error_message() . '</p>';
+		}
+		return;
+	}
+
+	$items = (int) $args['items'];
+	if ( $items < 1 || 20 < $items ) {
+		$items = 10;
+	}
+
+	echo '<ul>';
+	foreach ( array_slice( $rss_entries, 0, $items ) as $item ) {
+
+		if ( '' === $item['link'] ) {
+			echo "<li>{$item['title']}{$item['date']}{$item['summary']}{$item['author']}</li>";
+		} elseif ( $item['show_summary'] ) {
+			echo "<li><a class='rsswidget' href='{$item['link']}'>{$item['title']}</a>{$item['date']}{$item['summary']}{$item['author']}</li>";
 		} else {
-			echo "<li><a class='rsswidget' href='$link'>$title</a>{$date}{$author}</li>";
+			echo "<li><a class='rsswidget' href='{$item['link']}'>{$item['title']}</a>{$item['date']}{$item['author']}</li>";
 		}
 	}
 	echo '</ul>';
-	$rss->__destruct();
-	unset($rss);
+
 }
 
 /**
