Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.116
diff -u -p -r1.116 user.admin.inc
--- modules/user/user.admin.inc	29 Jul 2010 01:39:32 -0000	1.116
+++ modules/user/user.admin.inc	22 Aug 2010 17:04:38 -0000
@@ -388,14 +388,28 @@ function user_admin_settings() {
       '#description' => t('The style selected will be used on display, while the original image is retained. Styles may be configured in the <a href="!url">Image styles</a> administration area.', array('!url' => url('admin/config/media/image-styles'))),
     );
   }
+  $user_picture_dimensions = explode('x', variable_get('user_picture_dimensions', '85x85')) + array('', '');
   $form['personalization']['pictures']['user_picture_dimensions'] = array(
-    '#type' => 'textfield',
+    '#type' => 'item',
     '#title' => t('Picture upload dimensions'),
-    '#default_value' => variable_get('user_picture_dimensions', '85x85'),
-    '#size' => 10,
-    '#maxlength' => 10,
-    '#field_suffix' => ' ' . t('pixels'),
-    '#description' => t('Pictures larger than this will be scaled down to this size.'),
+    '#description' => t('The maximum allowed image size (e.g. 85x85). Set to 0x0 for no restriction. If an <a href="!image-toolkit-link">image toolkit</a> is installed, files exceeding this value will be scaled down to fit.', array('!image-toolkit-link' => url('admin/config/media/image-toolkit'))),
+    '#field_prefix' => '<div class="container-inline">',
+    '#field_suffix' => '</div>',
+    '#element_validate' => array('_user_picture_field_resolution_validate'),
+  );
+  $form['personalization']['pictures']['user_picture_dimensions']['user_picture_max_resolution_x'] = array(
+    '#type' => 'textfield',
+    '#default_value' => variable_get('user_picture_max_resolution_x', 0),
+    '#size' => 5,
+    '#maxlength' => 5,
+    '#field_suffix' => t('x'),
+  );
+  $form['personalization']['pictures']['user_picture_dimensions']['user_picture_max_resolution_y'] = array(
+    '#type' => 'textfield',
+    '#default_value' => variable_get('user_picture_max_resolution_y', 0),
+    '#size' => 5,
+    '#maxlength' => 5,
+    '#field_suffix' => t('px'),
   );
   $form['personalization']['pictures']['user_picture_file_size'] = array(
     '#type' => 'textfield',
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1193
diff -u -p -r1.1193 user.module
--- modules/user/user.module	15 Aug 2010 01:49:45 -0000	1.1193
+++ modules/user/user.module	22 Aug 2010 17:04:40 -0000
@@ -3424,6 +3424,20 @@ function user_image_style_save($style) {
 }
 
 /**
+ * Element validate function for user picture resolution field.
+ */
+function _user_picture_field_resolution_validate($element, &$form_state) {
+  foreach (array('x', 'y') as $dimension) {
+    $value = $element['user_picture_max_resolution_' . $dimension]['#value'];
+    if (!is_numeric($value)) {
+      form_error($element['user_picture_max_resolution_' . $dimension], t('Height and width values must be numeric.'));
+      return;
+    }
+  }
+  form_set_value($element, intval($element['user_picture_max_resolution_x']['#value']) . 'x' . intval($element['user_picture_max_resolution_y']['#value']), $form_state);
+}
+
+/**
  * Implements hook_action_info().
  */
 function user_action_info() {
