diff --git a/core/modules/user/config/user.settings.yml b/core/modules/user/config/user.settings.yml
index 98c8d25..cbab1f3 100644
--- a/core/modules/user/config/user.settings.yml
+++ b/core/modules/user/config/user.settings.yml
@@ -12,3 +12,6 @@ notify:
   register_pending_approval: '1'
 register: visitors
 signatures: '0'
+block_max_list_count: '10'
+block_seconds_online: '900'
+block_whois_new_count: '5'
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index b7ac23d..46b4bda 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -763,15 +763,15 @@ function user_block_configure($delta = '') {
       $form['user_block_whois_new_count'] = array(
         '#type' => 'select',
         '#title' => t('Number of users to display'),
-        '#default_value' => variable_get('user_block_whois_new_count', 5),
+        '#default_value' => config('user.settings')->get('block_whois_new_count'),
         '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)),
       );
       return $form;
 
     case 'online':
       $period = drupal_map_assoc(array(30, 60, 120, 180, 300, 600, 900, 1800, 2700, 3600, 5400, 7200, 10800, 21600, 43200, 86400), 'format_interval');
-      $form['user_block_seconds_online'] = array('#type' => 'select', '#title' => t('User activity'), '#default_value' => variable_get('user_block_seconds_online', 900), '#options' => $period, '#description' => t('A user is considered online for this long after they have last viewed a page.'));
-      $form['user_block_max_list_count'] = array('#type' => 'select', '#title' => t('User list length'), '#default_value' => variable_get('user_block_max_list_count', 10), '#options' => drupal_map_assoc(array(0, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100)), '#description' => t('Maximum number of currently online users to display.'));
+      $form['user_block_seconds_online'] = array('#type' => 'select', '#title' => t('User activity'), '#default_value' => config('user.settings')->get('block_seconds_online'), '#options' => $period, '#description' => t('A user is considered online for this long after they have last viewed a page.'));
+      $form['user_block_max_list_count'] = array('#type' => 'select', '#title' => t('User list length'), '#default_value' => config('user.settings')->get('block_max_list_count'), '#options' => drupal_map_assoc(array(0, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100)), '#description' => t('Maximum number of currently online users to display.'));
       return $form;
   }
 }
@@ -781,15 +781,16 @@ function user_block_configure($delta = '') {
  */
 function user_block_save($delta = '', $edit = array()) {
   global $user;
+  $config = config('user.settings');
 
   switch ($delta) {
     case 'new':
-      variable_set('user_block_whois_new_count', $edit['user_block_whois_new_count']);
+      $config->set('block_whois_new_count', $edit['user_block_whois_new_count'])->save();
       break;
 
     case 'online':
-      variable_set('user_block_seconds_online', $edit['user_block_seconds_online']);
-      variable_set('user_block_max_list_count', $edit['user_block_max_list_count']);
+      $config->set('block_seconds_online', $edit['user_block_seconds_online'])->save();
+      $config->set('block_max_list_count', $edit['user_block_max_list_count'])->save();
       break;
   }
 }
@@ -845,7 +846,7 @@ function user_block_view($delta = '') {
     case 'new':
       if (user_access('access content')) {
         // Retrieve a list of new users who have subsequently accessed the site successfully.
-        $items = db_query_range('SELECT uid, name FROM {users} WHERE status <> 0 AND access <> 0 ORDER BY created DESC', 0, variable_get('user_block_whois_new_count', 5))->fetchAll();
+        $items = db_query_range('SELECT uid, name FROM {users} WHERE status <> 0 AND access <> 0 ORDER BY created DESC', 0, config('user.settings')->get('block_whois_new_count'))->fetchAll();
 
         $block['subject'] = t('Who\'s new');
         $block['content'] = array(
@@ -861,7 +862,7 @@ function user_block_view($delta = '') {
     case 'online':
       if (user_access('access content')) {
         // Count users active within the defined period.
-        $interval = REQUEST_TIME - variable_get('user_block_seconds_online', 900);
+        $interval = REQUEST_TIME - config('user.settings')->get('block_seconds_online');
 
         // Perform database queries to gather online user lists. We use s.timestamp
         // rather than u.access because it is much faster.
@@ -875,7 +876,7 @@ function user_block_view($delta = '') {
         );
 
         // Display a list of currently online users.
-        $max_users = variable_get('user_block_max_list_count', 10);
+        $max_users = config('user.settings')->get('block_max_list_count');
         if ($authenticated_count && $max_users) {
           $items = db_query_range('SELECT u.uid, u.name, MAX(s.timestamp) AS max_timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= :interval AND s.uid > 0 GROUP BY u.uid, u.name ORDER BY max_timestamp DESC', 0, $max_users, array(':interval' => $interval))->fetchAll();
 
