Index: modules/comment.module
===================================================================
--- modules/comment.module	(revision 5760)
+++ modules/comment.module	(working copy)
@@ -301,29 +301,6 @@
 }
 
 /**
- * Implementation of hook_user().
- *
- * Provides signature customization for the user's comments.
- */
-function comment_user($type, $edit, &$user, $category = NULL) {
-  if ($type == 'form' && $category == 'account') {
-    // when user tries to edit his own data
-    $form['comment_settings'] = array(
-      '#type' => 'fieldset',
-      '#title' => t('Comment settings'),
-      '#collapsible' => TRUE,
-      '#weight' => 4);
-    $form['comment_settings']['signature'] = array(
-      '#type' => 'textarea',
-      '#title' => t('Signature'),
-      '#default_value' => $edit['signature'],
-      '#description' => t('Your signature will be publicly displayed at the end of your comments.'));
-
-    return $form;
-  }
-}
-
-/**
  * Menu callback; presents the comment settings page.
  */
 function comment_configure() {
@@ -819,7 +796,7 @@
 
     if ($cid) {
       // Single comment view.
-      $result = db_query('SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d AND c.status = %d GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users', $cid, COMMENT_PUBLISHED);
+      $result = db_query('SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.picture, u.data, c.score, c.users FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d AND c.status = %d GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users', $cid, COMMENT_PUBLISHED);
 
       if ($comment = db_fetch_object($result)) {
         $comment->name = $comment->uid ? $comment->registered_name : $comment->name;
@@ -828,9 +805,9 @@
     }
     else {
       // Multiple comment view
-      $query .= "SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users, c.thread FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d AND c.status = %d";
+      $query .= "SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.picture, u.data, c.score, c.users, c.thread FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d AND c.status = %d";
 
-      $query .= ' GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users, c.thread';
+      $query .= ' GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.signature, u.picture, u.data, c.score, c.users, c.thread';
 
       /*
       ** We want to use the standard pager, but threads would need every
@@ -1306,7 +1283,7 @@
     $form['subject'] = array('#type' => 'textfield', '#title' => t('Subject'), '#maxlength' => 64, '#default_value' => $edit['subject']);
   }
 
-  $form['comment'] = array('#type' => 'textarea', '#title' => t('Comment'), '#rows' => 15, '#default_value' => $edit['comment'] ? $edit['comment'] : $user->signature, '#required' => TRUE
+  $form['comment'] = array('#type' => 'textarea', '#title' => t('Comment'), '#rows' => 15, '#default_value' => $edit['comment'], '#required' => TRUE
   );
 
   $form['format'] = filter_form($node->format, 18);
Index: modules/user.module
===================================================================
--- modules/user.module	(revision 5760)
+++ modules/user.module	(working copy)
@@ -1161,27 +1161,95 @@
 
 function user_edit_form($uid, $edit) {
   // Account information:
-  $form['account'] = array('#type' => 'fieldset', '#title' => t('Account information'), '#weight' => 0);
+  $form['account'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Account information'),
+    '#weight' => 0,
+  );
   if (user_access('change own username') || user_access('administer users')) {
-    $form['account']['name'] = array('#type' => 'textfield', '#title' => t('Username'), '#default_value' => $edit['name'], '#maxlength' => 55, '#description' => t('Your full name or your preferred username: only letters, numbers and spaces are allowed.'), '#required' => TRUE);
+    $form['account']['name'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Username'),
+      '#default_value' => $edit['name'],
+      '#maxlength' => 55,
+      '#description' => t('Your full name or your preferred username: only letters, numbers and spaces are allowed.'),
+      '#required' => TRUE,
+    );
   }
-  $form['account']['mail'] = array('#type' => 'textfield', '#title' => t('E-mail address'), '#default_value' => $edit['mail'], '#maxlength' => 55, '#description' => t('Insert a valid e-mail address.  All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'), '#required' => TRUE);
-  $form['account']['pass'] = array('#type' => 'item', '#title' => t('Password'), '#value' => '<input type="password" class="form-password" name="edit[pass1]" size="12" maxlength="24" /> <input type="password" class="form-password" name="edit[pass2]" size="12" maxlength="24" />', '#required' => true);
+  $form['account']['mail'] = array(
+    '#type' => 'textfield',
+    '#title' => t('E-mail address'),
+    '#default_value' => $edit['mail'],
+    '#maxlength' => 55,
+    '#description' => t('Insert a valid e-mail address.  All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'), 
+    '#required' => TRUE,
+  );
+  $form['account']['pass'] = array(
+    '#type' => 'item',
+    '#title' => t('Password'),
+    '#value' => '<input type="password" class="form-password" name="edit[pass1]" size="12" maxlength="24" /> <input type="password" class="form-password" name="edit[pass2]" size="12" maxlength="24" />',
+    '#required' => TRUE,
+  );
   if (user_access('administer users')) {
-    $form['account']['status'] = array('#type' => 'radios', '#title' => t('Status'), '#default_value' => $edit['status'], '#options' => array(t('Blocked'), t('Active')));
+    $form['account']['status'] = array(
+      '#type' => 'radios',
+      '#title' => t('Status'),
+      '#default_value' => $edit['status'],
+      '#options' => array(
+        t('Blocked'),
+        t('Active'),
+      ),
+    );
   }
   if (user_access('administer access control')) {
-    $form['account']['roles'] = array('#type' => 'checkboxes', '#title' => t('Roles'), '#default_value' => array_keys($edit['roles']), '#options' => user_roles(1), '#description' => t('Select at least one role.  The user receives the combined permissions of all of the selected roles.'), '#required' => TRUE);
+    $form['account']['roles'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Roles'),
+      '#default_value' => array_keys($edit['roles']),
+      '#options' => user_roles(1),
+      '#description' => t('Select at least one role.  The user receives the combined permissions of all of the selected roles.'),
+      '#required' => TRUE,
+    );
   }
 
+  // Signature:
+  $form['signature'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Signature settings'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $form['signature']['signature'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Signature'),
+    '#default_value' => $edit['signature'],
+    '#description' => t('Your signature will be publicly displayed at the end of your posts and comments where the administrator has enabled them.'),
+  );
+
   // Picture/avatar:
   if (variable_get('user_pictures', 0)) {
-    $form['picture'] = array('#type' => 'fieldset', '#title' => t('Picture'), '#weight' => 1);
+    $form['picture'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Picture'),
+      '#weight' => 1,
+    );
     if ($edit['picture'] && ($picture = theme('user_picture', array2object($edit)))) {
-      $form['picture']['current_picture'] = array('#type' => 'markup', '#value' => $picture);
-      $form['picture']['picture_delete'] = array('#type' => 'checkbox', '#title' => t('Delete picture'), '#description' => t('Check this box to delete your current picture.'));
+      $form['picture']['current_picture'] = array(
+        '#type' => 'markup',
+        '#value' => $picture,
+      );
+      $form['picture']['picture_delete'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Delete picture'),
+        '#description' => t('Check this box to delete your current picture.'),
+      );
     }
-    $form['picture']['picture'] = array('#type' => 'file', '#title' => t('Upload picture'), '#size' => 48, '#description' => t('Your virtual face or picture.  Maximum dimensions are %dimensions and the maximum size is %size kB.', array('%dimensions' => variable_get('user_picture_dimensions', '85x85'), '%size' => variable_get('user_picture_file_size', '30'))) .' '. variable_get('user_picture_guidelines', ''));
+    $form['picture']['picture'] = array(
+      '#type' => 'file',
+      '#title' => t('Upload picture'),
+      '#size' => 48,
+      '#description' => t('Your virtual face or picture.  Maximum dimensions are %dimensions and the maximum size is %size kB.', array('%dimensions' => variable_get('user_picture_dimensions', '85x85'), '%size' => variable_get('user_picture_file_size', '30'))) .' '. variable_get('user_picture_guidelines', ''),
+    );
   }
 
   return $form;
@@ -1766,18 +1834,90 @@
 
 function user_configure() {
   // User registration settings.
-  $form['registration'] = array('#type' => 'fieldset', '#title' => t('User registration settings'));
-  $form['registration']['user_register'] = array('#type' => 'radios', '#title' => t('Public registrations'), '#default_value' => variable_get('user_register', 1), '#options' => array(t('Only site administrators can create new user accounts.'), t('Visitors can create accounts and no administrator approval is required.'), t('Visitors can create accounts but administrator approval is required.')));
-  $form['registration']['user_registration_help'] = array('#type' => 'textarea', '#title' => t('User registration guidelines'), '#default_value' => variable_get('user_registration_help', ''), '#description' => t('This text is displayed at the top of the user registration form.  It\'s useful for helping or instructing your users.'));
+  $form['registration'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User registration settings'),
+  );
+  $form['registration']['user_register'] = array(
+    '#type' => 'radios',
+    '#title' => t('Public registrations'),
+    '#default_value' => variable_get('user_register', 1),
+    '#options' => array(t('Only site administrators can create new user accounts.'), t('Visitors can create accounts and no administrator approval is required.'), t('Visitors can create accounts but administrator approval is required.')),
+  );
+  $form['registration']['user_registration_help'] = array(
+    '#type' => 'textarea',
+    '#title' => t('User registration guidelines'),
+    '#default_value' => variable_get('user_registration_help', ''),
+    '#description' => t('This text is displayed at the top of the user registration form.  It\'s useful for helping or instructing your users.'),
+  );
 
+  // User signature settings.
+  $form['signature'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User signature settings'),
+  );
+  $defaults = array_keys(variable_get('signature_node_types', array()), '1');
+  $form['signature']['signature_node_types'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Types'),
+    '#options' => node_get_types(),
+    '#default_value' => $defaults,
+    '#description' => t('Selected content types will display signatures at the bottom of all posts and comments'),
+  );
+  $form['signature']['signature_template'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Signature template'),
+    '#default_value' => variable_get('signature_template', '-- <div class="signature">%s</div>'),
+    '#description' => t('Use HTML to establish a template for signatures. %s represents the signature text.'),
+  );
+
   // User e-mail settings.
-  $form['email'] = array('#type' => 'fieldset', '#title' => t('User email settings'));
-  $form['email']['user_mail_welcome_subject'] = array('#type' => 'textfield', '#title' => t('Subject of welcome e-mail'), '#default_value' => _user_mail_text('welcome_subject'), '#maxlength' => 180, '#description' => t('Customize the subject of your welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_welcome_body'] = array('#type' => 'textarea', '#title' => t('Body of welcome e-mail'), '#default_value' => _user_mail_text('welcome_body'), '#rows' => 15, '#description' => t('Customize the body of the welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_approval_subject'] = array('#type' => 'textfield', '#title' => t('Subject of welcome e-mail (awaiting admin approval)'), '#default_value' => _user_mail_text('approval_subject'), '#maxlength' => 180, '#description' => t('Customize the subject of your awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_approval_body'] = array('#type' => 'textarea', '#title' => t('Body of welcome e-mail (awaiting admin approval)'), '#default_value' => _user_mail_text('approval_body'), '#rows' => 15, '#description' => t('Customize the body of the awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_pass_subject'] = array('#type' => 'textfield', '#title' => t('Subject of password recovery e-mail'), '#default_value' => _user_mail_text('pass_subject'), '#maxlength' => 180, '#description' => t('Customize the Subject of your forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri.');
-  $form['email']['user_mail_pass_body'] = array('#type' => 'textarea', '#title' => t('Body of password recovery e-mail'), '#default_value' => _user_mail_text('pass_body'), '#rows' => 15, '#description' => t('Customize the body of the forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %login_uri, %edit_uri.');
+  $form['email'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('User email settings'),
+  );
+  $form['email']['user_mail_welcome_subject'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Subject of welcome e-mail'),
+    '#default_value' => _user_mail_text('welcome_subject'),
+    '#maxlength' => 180,
+    '#description' => t('Customize the subject of your welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.',
+  );
+  $form['email']['user_mail_welcome_body'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Body of welcome e-mail'),
+    '#default_value' => _user_mail_text('welcome_body'),
+    '#rows' => 15,
+    '#description' => t('Customize the body of the welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.',
+  );
+  $form['email']['user_mail_approval_subject'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Subject of welcome e-mail (awaiting admin approval)'),
+    '#default_value' => _user_mail_text('approval_subject'),
+    '#maxlength' => 180,
+    '#description' => t('Customize the subject of your awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.',
+  );
+  $form['email']['user_mail_approval_body'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Body of welcome e-mail (awaiting admin approval)'),
+    '#default_value' => _user_mail_text('approval_body'),
+    '#rows' => 15,
+    '#description' => t('Customize the body of the awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.',
+  );
+  $form['email']['user_mail_pass_subject'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Subject of password recovery e-mail'),
+    '#default_value' => _user_mail_text('pass_subject'),
+    '#maxlength' => 180,
+    '#description' => t('Customize the Subject of your forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri.',
+  );
+  $form['email']['user_mail_pass_body'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Body of password recovery e-mail'),
+    '#default_value' => _user_mail_text('pass_body'),
+    '#rows' => 15,
+    '#description' => t('Customize the body of the forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %login_uri, %edit_uri.',
+  );
 
   // If picture support is enabled, check whether the picture directory exists:
   if (variable_get('user_pictures', 0)) {
@@ -1785,13 +1925,58 @@
     file_check_directory($picture_path, 1, 'user_picture_path');
   }
 
-  $form['pictures'] = array('#type' => 'fieldset', '#title' => t('Pictures'));
-  $form['pictures']['user_pictures'] = array('#type' => 'radios', '#title' => t('Picture support'), '#default_value' => variable_get('user_pictures', 0), '#options' => array(t('Disabled'), t('Enabled')), '#description' => t('Enable picture support.'));
-  $form['pictures']['user_picture_path'] = array('#type' => 'textfield', '#title' => t('Picture image path'), '#default_value' => variable_get('user_picture_path', 'pictures'), '#size' => 30, '#maxlength' => 255, '#description' => t('Subdirectory in the directory "%dir" where pictures will be stored.', array('%dir' => file_directory_path() .'/')));
-  $form['pictures']['user_picture_default'] = array('#type' => 'textfield', '#title' => t('Default picture'), '#default_value' => variable_get('user_picture_default', ''), '#size' => 30, '#maxlength' => 255, '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'));
-  $form['pictures']['user_picture_dimensions'] = array('#type' => 'textfield', '#title' => t('Picture maximum dimensions'), '#default_value' => variable_get('user_picture_dimensions', '85x85'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum dimensions for pictures.'));
-  $form['pictures']['user_picture_file_size'] = array('#type' => 'textfield', '#title' => t('Picture maximum file size'), '#default_value' => variable_get('user_picture_file_size', '30'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum file size for pictures, in kB.'));
-  $form['pictures']['user_picture_guidelines'] = array('#type' => 'textarea', '#title' => t('Picture guidelines'), '#default_value' => variable_get('user_picture_guidelines', ''), '#description' => t('This text is displayed at the picture upload form in addition to the default guidelines.  It\'s useful for helping or instructing your users.'));
+  $form['pictures'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Pictures'),
+  );
+  $form['pictures']['user_pictures'] = array(
+    '#type' => 'radios',
+    '#title' => t('Picture support'),
+    '#default_value' => variable_get('user_pictures', 0),
+    '#options' => array(
+      t('Disabled'),
+      t('Enabled'),
+    ),
+    '#description' => t('Enable picture support.'),
+  );
+  $form['pictures']['user_picture_path'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Picture image path'),
+    '#default_value' => variable_get('user_picture_path', 'pictures'),
+    '#size' => 30,
+    '#maxlength' => 255,
+    '#description' => t('Subdirectory in the directory "%dir" where pictures will be stored.', array('%dir' => file_directory_path() .'/')),
+  );
+  $form['pictures']['user_picture_default'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Default picture'),
+    '#default_value' => variable_get('user_picture_default', ''),
+    '#size' => 30,
+    '#maxlength' => 255,
+    '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'),
+  );
+  $form['pictures']['user_picture_dimensions'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Picture maximum dimensions'),
+    '#default_value' => variable_get('user_picture_dimensions', '85x85'),
+    '#size' => 15,
+    '#maxlength' => 10,
+    '#description' => t('Maximum dimensions for pictures.'),
+  );
+  $form['pictures']['user_picture_file_size'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Picture maximum file size'),
+    '#default_value' => variable_get('user_picture_file_size', '30'),
+    '#size' => 15,
+    '#maxlength' => 10,
+    '#description' => t('Maximum file size for pictures, in kB.'),
+  );
+  $form['pictures']['user_picture_guidelines'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Picture guidelines'),
+    '#default_value' => variable_get('user_picture_guidelines', ''),
+    '#description' => t('This text is displayed at the picture upload form in addition to the default guidelines.  It\'s useful for helping or instructing your users.'),
+  );
 
   return system_settings_form('user_configure_settings', $form);
 }
@@ -1938,4 +2123,52 @@
   exit();
 }
 
+/**
+ * Implementation of hook_comment().
+ */
+function user_comment($comment, $op) {
+  if ($op == 'view') {
+    $node = node_load($comment->nid);
+    if (user_signature_is_allowed($node->type)) {
+      $comment->comment .= theme('user_signature', $comment->signature);
+    }
+  }
 
+  return $comment;
+}
+ 
+/**
+ * Implementation of hook_nodeapi().
+ */
+function user_nodeapi(&$node, $op, $arg = 0) {
+  if (user_signature_is_allowed($node->type)) {
+    switch ($op) {
+      case 'view':
+        $node->body .= theme('user_signature', $node->signature);
+        break;
+    }
+  }
+}
+
+/**
+ * Determines if signature type is allowed or not.
+ *
+ * @param $type
+ *   A node type
+ * @return boolean
+ *   Returns true if node type is allowed, false if it is not.
+ */
+function user_signature_is_allowed($type) {
+  $allowed_types = variable_get('signature_node_types', array());
+  return ($allowed_types[$type] == 1);
+}
+
+/**
+ * Format a signature
+ *
+ * @return string
+ *   HTML output of signature
+ */
+function theme_user_signature($signature) {
+  return sprintf(variable_get('signature_template', '-- <div class="signature">%s</div>'), check_markup($signature));
+}
Index: modules/node.module
===================================================================
--- modules/node.module	(revision 5760)
+++ modules/node.module	(working copy)
@@ -362,10 +362,10 @@
 
   // Retrieve the node.
   if ($revision) {
-    $node = db_fetch_object(db_query(db_rewrite_sql('SELECT n.nid, r.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.moderate, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.nid = n.nid AND r.vid = %d WHERE '. $cond), $revision));
+    $node = db_fetch_object(db_query(db_rewrite_sql('SELECT n.nid, r.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.moderate, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.signature, u.picture, u.data FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.nid = n.nid AND r.vid = %d WHERE '. $cond), $revision));
   }
   else {
-    $node = db_fetch_object(db_query(db_rewrite_sql('SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.moderate, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.vid = n.vid WHERE '. $cond)));
+    $node = db_fetch_object(db_query(db_rewrite_sql('SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.moderate, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.signature, u.picture, u.data FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.vid = n.vid WHERE '. $cond)));
   }
 
   if ($node->nid) {
