--- filter.module.orig	2005-06-30 01:11:00.000000000 +0000
+++ filter.module	2005-06-30 01:02:30.000000000 +0000
@@ -249,6 +249,32 @@
 }
 
 /**
+ * Implementation of hook_user().
+ */
+function filter_user($type, &$edit, &$user, $category = NULL) {
+  if ($type == 'form' && $category == 'account' && user_access('access content')) {
+    $user_status = $edit['input_format'] != NULL ? $edit['input_format'] : ($user->input_format != NULL ? $user->input_format : variable_get('filter_default_format', 1));
+    $form = '';
+    if ($user_status == 0) {
+      $user_status = variable_get('filter_default_format', 1);
+    }
+    $form = filter_form('input_format', $user_status);
+    if (preg_match('/type="hidden"/', $form)) {
+       return '';
+    } else {
+       return array(array('title' => t('Preferred input format'), 'data' => $form));
+    }
+  }
+  if ($type == 'validate') {
+    return array('input_format' => $edit['input_format']);
+  }
+  if ($type == 'update') {
+     $input_format = $edit['input_format'];
+     db_query("UPDATE {users} SET input_format = %d WHERE uid = %d", $input_format, $user->uid);
+  }
+}
+
+/**
  * Implementation of hook_perm().
  */
 function filter_perm() {
@@ -706,8 +732,13 @@
  *   HTML for the form element.
  */
 function filter_form($name = 'format', $value = FILTER_FORMAT_DEFAULT) {
+  global $user;
   if ($value == FILTER_FORMAT_DEFAULT) {
-    $value = variable_get('filter_default_format', 1);
+     if ($user->input_format) {
+        $value = $user->input_format;
+     } else {
+        $value = variable_get('filter_default_format', 1);
+     }
   }
   $formats = filter_formats();
 
