diff --git a/src/wp-admin/includes/upgrade.php b/src/wp-admin/includes/upgrade.php
index 4de9b109f4..32422b0e25 100644
--- a/src/wp-admin/includes/upgrade.php
+++ b/src/wp-admin/includes/upgrade.php
@@ -931,9 +931,13 @@ function upgrade_110() {
 
 	$users = $wpdb->get_results( "SELECT ID, user_pass from $wpdb->users" );
 	foreach ( $users as $row ) {
-		if ( ! preg_match( '/^[A-Fa-f0-9]{32}$/', $row->user_pass ) ) {
-			$wpdb->update( $wpdb->users, array( 'user_pass' => md5( $row->user_pass ) ), array( 'ID' => $row->ID ) );
-		}
+	    // Check if password is less than or equal to 32 characters
+        if ( strlen( $row->user_pass ) <= 32 ) {
+            if( strlen( $row->user_pass ) < 32 || !ctype_xdigit( $row->user_pass ) ){
+                // Password is less than 32 characters or contain not valid hexadecimal characters => MD5 it !
+                $wpdb->update( $wpdb->users, array( 'user_pass' => md5( $row->user_pass ) ), array( 'ID' => $row->ID ) );
+            }
+        }
 	}
 
 	// Get the GMT offset, we'll use that later on
