Index: wp-includes/widget-functions.php
===================================================================
--- wp-includes/widget-functions.php	(revision 33848)
+++ wp-includes/widget-functions.php	(working copy)
@@ -739,11 +739,32 @@
  * @return bool true if the sidebar is in use, false otherwise.
  */
 function is_active_sidebar( $index ) {
-	$index = ( is_int($index) ) ? "sidebar-$index" : sanitize_title($index);
-	$sidebars_widgets = wp_get_sidebars_widgets();
-	$is_active_sidebar = ! empty( $sidebars_widgets[$index] );
+	$index             = ( is_int( $index ) ) ? "sidebar-$index" : sanitize_title( $index );
+	$sidebars_widgets  = wp_get_sidebars_widgets();
+	$is_active_sidebar = ! empty( $sidebars_widgets[ $index ] );
 
 	/**
+	 * Addresses case where a widget instance is still in sidebars_widgets but
+	 * is not actually registered.
+	 *
+	 * @ticket 33602
+	 */
+	if ( true === $is_active_sidebar ) {
+
+		global $wp_registered_widgets;
+		$widget_area_contents = $sidebars_widgets[ $index ];
+		$active_widget_count  = count( $widget_area_contents );
+
+		foreach ( $widget_area_contents as $widget_instance ) {
+
+			if ( ! array_key_exists( $widget_instance, $wp_registered_widgets ) ) {
+				$active_widget_count--;
+			}
+		}
+		$is_active_sidebar = ( 0 < $active_widget_count );
+	}
+
+	/**
 	 * Filter whether a dynamic sidebar is considered "active".
 	 *
 	 * @since 3.9.0
