Index: src/wp-admin/js/customize-controls.js
===================================================================
--- src/wp-admin/js/customize-controls.js	(revision 37280)
+++ src/wp-admin/js/customize-controls.js	(working copy)
@@ -3338,6 +3338,12 @@
 					} );
 					request = wp.ajax.post( 'customize_save', query );
 
+					//Disable save button during the save request.
+					saveBtn.prop( 'disabled', true );
+
+					//Set to false because changes are saving.
+					api.is_dirty = false;
+
 					api.trigger( 'save', request );
 
 					request.always( function () {
@@ -3362,17 +3368,25 @@
 							} );
 						}
 						api.trigger( 'error', response );
+
+						saveBtn.prop( 'disabled', false );
 					} );
 
 					request.done( function( response ) {
-						// Clear setting dirty states
-						api.each( function ( value ) {
-							value._dirty = false;
-						} );
+						//If any setting changed during the save request then keep enable save button.
+						if( api.is_dirty ) {
+							api.state('saved').set( false );
+							saveBtn.prop( 'disabled', false );
+						} else {
+							// Clear setting dirty states
+							api.each( function ( value ) {
+								value._dirty = false;
+							} );
 
-						api.previewer.send( 'saved', response );
+							api.previewer.send( 'saved', response );
 
-						api.trigger( 'saved', response );
+							api.trigger( 'saved', response );
+						}
 					} );
 				};
 
@@ -3580,8 +3594,12 @@
 			activated( api.settings.theme.active );
 			processing( 0 );
 
+			//To check whether any setting changed during the save request.
+			api.is_dirty = false;
+
 			api.bind( 'change', function() {
 				state('saved').set( false );
+				api.is_dirty = true;
 			});
 
 			api.bind( 'saved', function() {
