diff -urp /home/shenliang/Desktop/privatemsg/privatemsg.admin.inc /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.admin.inc
--- /home/shenliang/Desktop/privatemsg/privatemsg.admin.inc	2010-07-22 05:22:44.000000000 +0800
+++ /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.admin.inc	2010-07-28 15:02:49.000000000 +0800
@@ -50,6 +50,12 @@ function privatemsg_admin_settings() {
     '#description' => t('Also redirect to the defined page when replying.'),
     '#weight'      => 1,
   );
+  $form['display_settings']['privatemsg_display_preview_button'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show preview button on compose form'),
+    '#description' => t('Less button, less choice, better usability.'),
+    '#default_value' => variable_get('privatemsg_display_preview_button', FALSE),
+  );
 
   $form['integration'] = array(
     '#type' => 'fieldset',
@@ -204,4 +210,4 @@ function privatemsg_admin_settings() {
 
 function privatemsg_admin_settings_submit() {
   drupal_rebuild_theme_registry();
-}
\ No newline at end of file
+}
diff -urp /home/shenliang/Desktop/privatemsg/privatemsg.module /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.module
--- /home/shenliang/Desktop/privatemsg/privatemsg.module	2010-07-25 04:21:05.000000000 +0800
+++ /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.module	2010-07-28 14:47:48.000000000 +0800
@@ -31,6 +31,7 @@ function privatemsg_perm() {
     'write privatemsg',
     'delete privatemsg',
     'reply only privatemsg',
+    'select input formats',
   );
 }
 
diff -urp /home/shenliang/Desktop/privatemsg/privatemsg.pages.inc /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.pages.inc
--- /home/shenliang/Desktop/privatemsg/privatemsg.pages.inc	2010-07-24 16:45:33.000000000 +0800
+++ /var/www/svn/futurename/sites/all/modules/contrib/privatemsg/privatemsg.pages.inc	2010-07-28 14:55:36.000000000 +0800
@@ -309,19 +309,23 @@ function privatemsg_new(&$form_state, $r
     '#default_value'      => $body,
     '#resizable'          => TRUE,
   );
-  $format = FILTER_FORMAT_DEFAULT;
-  // The input filter widget looses the format during preview, specify it
-  // explicitly.
-  if (isset($form_state['values']) && array_key_exists('format', $form_state['values'])) {
-    $format = $form_state['values']['format'];
+  if (user_access('select input formats')) {
+    $format = FILTER_FORMAT_DEFAULT;
+    // The input filter widget looses the format during preview, specify it
+    // explicitly.
+    if (isset($form_state['values']) && array_key_exists('format', $form_state['values'])) {
+      $format = $form_state['values']['format'];
+    }
+    $form['privatemsg']['format'] = filter_form($format);
+  }
+  if (variable_get('privatemsg_display_preview_button', FALSE)) {
+    $form['privatemsg']['preview'] = array(
+      '#type'               => 'submit',
+      '#value'              => t('Preview message'),
+      '#submit'             => array('privatemsg_new_preview'),
+      '#weight'             => 10,
+    );
   }
-  $form['privatemsg']['format'] = filter_form($format);
-  $form['privatemsg']['preview'] = array(
-    '#type'               => 'submit',
-    '#value'              => t('Preview message'),
-    '#submit'             => array('privatemsg_new_preview'),
-    '#weight'             => 10,
-  );
   $form['privatemsg']['submit'] = array(
     '#type'               => 'submit',
     '#value'              => t('Send message'),
@@ -747,4 +751,4 @@ function privatemsg_load_recipients($mid
   if ($context['finished'] >= 1) {
     db_query("UPDATE {pm_index} SET is_new = %d WHERE mid = %d AND recipient = %d AND type = '%s'", PRIVATEMSG_READ, $mid, $recipient->recipient, $recipient->type);
   }
-}
\ No newline at end of file
+}
