diff --git a/src/js/_enqueues/admin/user-profile.js b/src/js/_enqueues/admin/user-profile.js
index b73f2ab5c4..d14ff2549a 100644
--- a/src/js/_enqueues/admin/user-profile.js
+++ b/src/js/_enqueues/admin/user-profile.js
@@ -5,6 +5,7 @@
 /* global ajaxurl, pwsL10n */
 (function($) {
 	var updateLock = false,
+		isSubmitting = false,
 		__ = wp.i18n.__,
 		$pass1Row,
 		$pass1,
@@ -14,7 +15,9 @@
 		$toggleButton,
 		$submitButtons,
 		$submitButton,
-		currentPass;
+		currentPass,
+		$form,
+		originalFormContent;
 
 	function generatePassword() {
 		if ( typeof zxcvbn !== 'function' ) {
@@ -377,6 +380,13 @@
 		});
 
 		bindPasswordForm();
+
+		$submitButtons.on( 'click', function () {
+			isSubmitting = true;
+		});
+
+		$form = $('#your-profile, #createuser');
+		originalFormContent = $form.serialize();
 	});
 
 	$( '#destroy-sessions' ).on( 'click', function( e ) {
@@ -400,10 +410,13 @@
 	window.generatePassword = generatePassword;
 
 	/* Warn the user if password was generated but not saved */
-	$( window ).on( 'beforeunload', function () {
+	$( window ).on( 'beforeunload', function ( ) {
 		if ( true === updateLock ) {
 			return __( 'Your new password has not been saved.' );
 		}
+		if( originalFormContent !== $form.serialize() && ! isSubmitting ) {
+			return __( 'Changes that you made may not be saved.' );
+		}
 	} );
 
 })(jQuery);
