diff --git a/user_diff.module b/user_diff.module
index 2adc668..34c324d 100644
--- a/user_diff.module
+++ b/user_diff.module
@@ -191,6 +191,15 @@ function user_diff_form_user_revision_admin_settings_alter(&$form, $form_state)
     '#weight' => 11,
     '#default_value' => variable_get('user_diff_show_editors_ip', FALSE),
   );
+  $form['user_diff']['user_preview_view_mode'] = array(
+    '#type' => 'select',
+    '#title' => t('Preview view mode'),
+    '#description' => t('Select the view mode to use for the user preview. Select "- None -" to hide the preview.'),
+    '#options' => _user_diff_preview_view_mode_options(),
+    '#empty_value' => '-none-',
+    '#weight' => 12,
+    '#default_value' => variable_get('user_preview_view_mode', 'diff_standard'),
+  );
 }
 
 /**
@@ -281,3 +290,23 @@ function user_diff_inline_form_submit(&$form, &$form_state) {
     $form_state['redirect'] = "user/{$user->uid}/revisions/{$vid}/view";
   }
 }
+
+/**
+ * Helper function for the user preview view mode selection.
+ *
+ * @return array()
+ *   View mode options.
+ */
+function _user_diff_preview_view_mode_options() {
+  $options = array();
+
+  $user_info = entity_get_info('user');
+
+  if (!empty($user_info['view modes'])) {
+    foreach ($user_info['view modes'] as $system_name => $view_mode) {
+      $options[$system_name] = $view_mode['label'];
+    }
+  }
+
+  return $options;
+}
diff --git a/user_diff.pages.inc b/user_diff.pages.inc
index ba279fb..d2fecbc 100644
--- a/user_diff.pages.inc
+++ b/user_diff.pages.inc
@@ -227,15 +227,19 @@ function user_diff_diffs_show($user, $old_vid, $new_vid) {
   $rows = array_merge($rows, _user_diff_body_rows($old_user, $new_user));
   $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('class' => array('diff')), 'cols' => $cols));
 
-  if ($user->vid == $new_vid) {
-    $output .= '<div class="diff-section-title">'. t('Current revision:') .'</div>';
-  }
-  else {
-    $output .= '<div class="diff-section-title">'. t('Revision of !new_date:', array('!new_date' => format_date($new_user->revision_timestamp))) .'</div>';
+  $preview_view_mode = variable_get('user_preview_view_mode', 'diff_standard');
+
+  if ($preview_view_mode !== '-none-') {
+    if ($user->vid == $new_vid) {
+      $output .= '<div class="diff-section-title">'. t('Current revision:') .'</div>';
+    }
+    else {
+      $output .= '<div class="diff-section-title">'. t('Revision of !new_date:', array('!new_date' => format_date($new_user->revision_timestamp))) .'</div>';
+    }
+    $user_view = user_view($new_user, $preview_view_mode);
+    $output .= drupal_render($user_view);
   }
-  // Don't include node links (final argument) when viewing the diff.
-  $user_view = user_view($new_user, 'full');
-  $output .= drupal_render($user_view);
+
   return $output;
 }
 
