diff --git a/src/wp-admin/js/user-profile.js b/src/wp-admin/js/user-profile.js
index bb80a32..ab4b3e8 100644
--- a/src/wp-admin/js/user-profile.js
+++ b/src/wp-admin/js/user-profile.js
@@ -47,7 +47,7 @@
 			.addClass( $pass1[0].className )
 			.data( 'pw', $pass1.data( 'pw' ) )
 			.val( $pass1.val() )
-			.on( 'input propertychange', function () {
+			.on( 'keypress', function () {
 				if ( $pass1Text.val() === currentPass ) {
 					return;
 				}
@@ -62,7 +62,7 @@
 			generatePassword();
 		}
 
-		$pass1.on( 'input propertychange pwupdate', function () {
+		$pass1.on( 'keypress pwupdate', function () {
 			if ( $pass1.val() === currentPass ) {
 				return;
 			}
@@ -163,7 +163,8 @@
 		 * This fixes the issue by copying any changes from the hidden
 		 * pass2 field to the pass1 field, then running check_pass_strength.
 		 */
-		$pass2 = $('#pass2').on( 'input propertychange', function () {
+		$pass2 = $('#pass2');
+		$pass2.on( 'keypress', function () {
 			if ( $pass2.val().length > 0 ) {
 				$pass1.val( $pass2.val() );
 				$pass2.val('');
@@ -244,7 +245,7 @@
 		var $colorpicker, $stylesheet, user_id, current_user_id,
 			select = $( '#display_name' );
 
-		$('#pass1').val('').on( 'input propertychange pwupdate', check_pass_strength );
+		$('#pass1').val('').on( 'keypress pwupdate', check_pass_strength );
 		$('#pass-strength-result').show();
 		$('.color-palette').click( function() {
 			$(this).siblings('input[name="admin_color"]').prop('checked', true);
