diff --git src/wp-admin/js/widgets.js src/wp-admin/js/widgets.js
index 5866795d1a..ec4e76f807 100644
--- src/wp-admin/js/widgets.js
+++ src/wp-admin/js/widgets.js
@@ -285,6 +285,7 @@ wpWidgets = {
 				if ( $widget.hasClass('deleting') ) {
 					wpWidgets.save( $widget, 1, 0, 1 ); // delete widget
 					$widget.remove();
+					// @todo Clear dirty flag?
 					return;
 				}
 
@@ -517,10 +518,14 @@ wpWidgets = {
 					order = 0;
 					widget.slideUp('fast', function(){
 						$(this).remove();
+						$(this).removeClass( 'widget-dirty' );
 						wpWidgets.saveOrder();
+						delete self.dirtyWidgets[ id ];
 					});
 				} else {
 					widget.remove();
+					widget.removeClass( 'widget-dirty' );
+					delete self.dirtyWidgets[ id ];
 
 					if ( sidebarId === 'wp_inactive_widgets' ) {
 						$( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length );
@@ -566,6 +571,7 @@ wpWidgets = {
 
 		data = $.param( a );
 
+		// @todo Also clear dirty flags on any inactive widgets.
 		$.post( ajaxurl, data, function() {
 			$( '#wp_inactive_widgets .widget' ).remove();
 			$( '#inactive-widgets-control-remove' ).prop( 'disabled' , true );
