? .cvsignore
? view_cleanup_backport_2.patch
? view_cleanup_backport_3.patch
? view_cleanup_d6.patch
Index: privatemsg-view.tpl.php
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg-view.tpl.php,v
retrieving revision 1.8
diff -u -p -r1.8 privatemsg-view.tpl.php
--- privatemsg-view.tpl.php	22 Mar 2010 07:26:40 -0000	1.8
+++ privatemsg-view.tpl.php	22 Oct 2010 08:39:58 -0000
@@ -5,32 +5,23 @@
 drupal_add_css(drupal_get_path('module', 'privatemsg') . '/styles/privatemsg-view.css');
 ?>
 <?php print $anchors; ?>
-<div class="privatemsg-message" id="privatemsg-mid-<?php print $mid; ?>">
-  <div class="privatemsg-author-column">
-    <div class="privatemsg-author-column-left">
-      <div class="privatemsg-author-avatar">
-        <?php print $author_picture; ?>
-      </div>
-    </div>
-  </div>
-  <div class="privatemsg-author-column-right">
-    <div class="privatemsg-author-name">
-      <?php print $author_name_link; ?>
-    </div>
-    <div class="privatemsg-message-date">
-      <?php print $message_timestamp; ?>
-    </div>
+<div class="privatemsg-message<?php echo isset($new) ? ' privatemsg-message-new' : '' ?>" id="privatemsg-mid-<?php print $mid; ?>">
+  <div class="privatemsg-author-avatar">
+    <?php print $author_picture; ?>
   </div>
   <div class="privatemsg-message-column">
+    <?php if (isset($new)): ?>
+      <span class="new privatemsg-message-new"><?php print $new ?></span>
+    <?php endif ?>
+      <div class="privatemsg-message-information">
+        <span class="privatemsg-author-name"><?php print $author_name_link; ?></span> <span class="privatemsg-message-date"><?php print $message_timestamp; ?></span>
+        <?php if (isset($message_actions)): ?>
+          <?php print $message_actions ?>
+        <?php endif ?>
+      </div>
     <div class="privatemsg-message-body">
-      <?php if (isset($new)) : ?>
-        <span class="new"><?php print $new ?></span>
-      <?php endif ?>
       <?php print $message_body; ?>
     </div>
-    <?php if ( isset($message_actions)) : ?>
-       <?php print $message_actions ?>
-    <?php endif ?>
   </div>
-  <div class="clear-both privatemsg-bottom-border"></div>
+  <div class="privatemsg-clearfix"></div>
 </div>
Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.147
diff -u -p -r1.147 privatemsg.module
--- privatemsg.module	20 Oct 2010 12:52:58 -0000	1.147
+++ privatemsg.module	22 Oct 2010 08:39:59 -0000
@@ -88,10 +88,18 @@ function _privatemsg_generate_user_array
  *   String with formated user objects, like user1, user2.
  */
 function _privatemsg_format_participants($part_array, $limit = NULL, $no_text = FALSE) {
+  global $user;
   if (count($part_array) > 0) {
     $to = array();
     $limited = FALSE;
     foreach ($part_array as $account) {
+
+      // Directly address the current user.
+      if (isset($account->type) && in_array($account->type, array('hidden', 'user')) && $account->recipient == $user->uid) {
+        array_unshift($to, $no_text ? t('You') : t('you'));
+        continue;
+      }
+
       // Don't display recipients with type hidden.
       if (isset($account->type) && $account->type == 'hidden') {
         continue;
@@ -119,7 +127,7 @@ function _privatemsg_format_participants
     }
     else { // Multipe participants..
       $participants = implode(', ', $to);
-      return t('Participants: !participants and !last', array('!participants' => $participants, '!last' => $last));
+      return t('Between !participants and !last', array('!participants' => $participants, '!last' => $last));
     }
   }
   return '';
@@ -701,20 +709,26 @@ function privatemsg_theme() {
 }
 
 function privatemsg_preprocess_privatemsg_view(&$vars) {
-//  drupal_set_message('<pre>'. print_r($vars,1 ) . '</pre>');
+  global $user;
 
   $message = $vars['message'];
   $vars['mid'] = isset($message['mid']) ? $message['mid'] : NULL;
   $vars['thread_id'] = isset($message['thread_id']) ? $message['thread_id'] : NULL;
   $vars['author_picture'] = theme('user_picture', $message['author']);
-  $vars['author_name_link'] = privatemsg_recipient_format($message['author']);
+  // Directly address the current user if he is the author.
+  if ($user->uid == $message['author']->uid){
+    $vars['author_name_link'] = t('You');
+  }
+  else {
+    $vars['author_name_link'] = privatemsg_recipient_format($message['author']);
+  }
   /**
    * @todo perhaps make this timestamp configurable via admin UI?
    */
   $vars['message_timestamp'] = format_date($message['timestamp'], 'small');
   $vars['message_body'] = check_markup($message['body'], $message['format'], FALSE);
   if (isset($vars['mid']) && isset($vars['thread_id']) && privatemsg_user_access('delete privatemsg')) {
-    $vars['message_actions'][] = array('title' => t('Delete message'), 'href' => 'messages/delete/' . $vars['thread_id'] . '/' . $vars['mid']);
+    $vars['message_actions'][] = array('title' => t('Delete'), 'href' => 'messages/delete/' . $vars['thread_id'] . '/' . $vars['mid']);
   }
   $vars['message_anchors'][] = 'privatemsg-mid-' . $vars['mid'];
   if (!empty($message['is_new'])) {
@@ -725,7 +739,7 @@ function privatemsg_preprocess_privatems
   // call hook_privatemsg_message_view_alter
   drupal_alter('privatemsg_message_view', $vars);
 
-  $vars['message_actions'] = !empty($vars['message_actions']) ? theme('links', $vars['message_actions'], array('class' => 'privatemsg-message-actions')) : '';
+  $vars['message_actions'] = !empty($vars['message_actions']) ? theme('links', $vars['message_actions'], array('class' => 'privatemsg-message-actions links inline')) : '';
 
   $vars['anchors'] = '';
   foreach ($vars['message_anchors'] as $anchor) {
@@ -1530,7 +1544,7 @@ function privatemsg_reply($thread_id, $b
   return $validated;
 }
 
-function _privatemsg_validate_message(&$message, $form = FALSE, $display_block_messages = TRUE) {
+function _privatemsg_validate_message(&$message, $form = FALSE) {
   $messages = array('error' => array(), 'warning' => array());
   if (!(privatemsg_user_access('write privatemsg', $message['author']) || (privatemsg_user_access('reply only privatemsg', $message['author']) && isset($message['thread_id'])))) {
     // no need to do further checks in this case...
@@ -1600,10 +1614,7 @@ function _privatemsg_validate_message(&$
     foreach (module_invoke_all('privatemsg_block_message', $message['author'], $message['recipients'], $message) as $blocked) {
       unset($message['recipients'][$blocked['recipient']]);
       if ($form) {
-        // Don't display information about blocked users when replying.
-        if ($display_block_messages) {
-          drupal_set_message($blocked['message'], 'warning');
-        }
+        drupal_set_message($blocked['message'], 'warning');
       }
       else {
         $messages['warning'][] = $blocked['message'];
Index: privatemsg.pages.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.pages.inc,v
retrieving revision 1.16
diff -u -p -r1.16 privatemsg.pages.inc
--- privatemsg.pages.inc	20 Oct 2010 12:52:58 -0000	1.16
+++ privatemsg.pages.inc	22 Oct 2010 08:39:59 -0000
@@ -107,35 +107,33 @@ function privatemsg_list_submit($form, &
 function privatemsg_view($thread) {
   drupal_set_title(check_plain($thread['subject']));
 
-  // Generate paging links.
-  $older = '';
-  if (isset($thread['older_start'])) {
-    $options = array(
-      'query' => array('start' => $thread['older_start']),
-      'title' => t('Display older messages'),
+  if ($thread['to'] != $thread['message_count'] || !empty($thread['start'])) {
+    // Generate paging links.
+    $older = '';
+    if (isset($thread['older_start'])) {
+      $options = array(
+        'query' => array('start' => $thread['older_start']),
+        'title' => t('Display older messages'),
+      );
+      $older = l(t('<<'), privatemsg_get_dynamic_url_prefix() . '/view/' . $thread['thread_id'], $options);
+    }
+    $newer = '';
+    if (isset($thread['newer_start'])) {
+      $options = array(
+        'query' => array('start' => $thread['newer_start']),
+        'title' => t('Display newer messages'),
+      );
+      $newer = l(t('>>'), privatemsg_get_dynamic_url_prefix() . '/view/' . $thread['thread_id'], $options);
+    }
+    $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer);
+    $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions);
+    $content['pager'] = array(
+      '#value'  => trim($title),
+      '#prefix' => '<div class="privatemsg-view-pager">',
+      '#suffix' => '</div>',
+      '#weight' => 3,
     );
-    $older = l(t('<<'), privatemsg_get_dynamic_url_prefix() . '/view/' . $thread['thread_id'], $options);
   }
-  $newer = '';
-  if (isset($thread['newer_start'])) {
-    $options = array(
-      'query' => array('start' => $thread['newer_start']),
-      'title' => t('Display newer messages'),
-    );
-    $newer = l(t('>>'), privatemsg_get_dynamic_url_prefix() . '/view/' . $thread['thread_id'], $options);
-  }
-  $substitutions = array('@from' => $thread['from'], '@to' => $thread['to'], '@total' => $thread['message_count'], '!previous_link' => $older, '!newer_link' => $newer);
-  $title = t('!previous_link Displaying messages @from - @to of @total !newer_link', $substitutions);
-  $content['pager_top'] = array(
-    '#value'  => trim($title),
-    '#prefix' => '<div class="privatemsg-view-pager">',
-    '#suffix' => '</div>',
-    '#weight' => -10,
-  );
-
-  // Display a copy at the end.
-  $content['pager_bottom'] = $content['pager_top'];
-  $content['pager_bottom']['#weight'] = 3;
 
   // Render the participants.
   $content['participants']['#value'] = theme('privatemsg_recipients', $thread);
@@ -306,7 +304,7 @@ function privatemsg_new(&$form_state, $r
     '#type'               => 'textarea',
     '#title'              => t('Message'),
     '#rows'               => 6,
-    '#weight'             => 0,
+    '#weight'             => -3,
     '#default_value'      => $body,
     '#resizable'          => TRUE,
   );
@@ -352,8 +350,8 @@ function privatemsg_new(&$form_state, $r
       '#type' => 'value',
       '#default_value' => $subject,
     );
-    $form['recipient_display'] = array(
-      '#value' =>  '<p>'. t('<strong>Reply to thread</strong>:<br /> Recipients: !to', array('!to' => $recipients_string)) .'</p>',
+    $form['reply'] = array(
+      '#value' =>  '<h2 class="privatemsg-reply">' . t('Reply') . '</h2>',
       '#weight' => -10,
     );
     if (empty($recipients_string)) {
@@ -387,7 +385,7 @@ function privatemsg_new_validate($form, 
     // Load participants. Limit recipients to visible unless read_all is TRUE.
     $message['recipients'] = _privatemsg_load_thread_participants($message['thread_id'], $message['read_all'] ? FALSE : $message['author']);
   }
-  $validated = _privatemsg_validate_message($message, TRUE, !isset($message['thread_id']));
+  $validated = _privatemsg_validate_message($message, TRUE);
   foreach ($validated['messages'] as $type => $text) {
     drupal_set_message($text, $type);
   }
Index: privatemsg.test
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.test,v
retrieving revision 1.23
diff -u -p -r1.23 privatemsg.test
--- privatemsg.test	20 Oct 2010 12:52:58 -0000	1.23
+++ privatemsg.test	22 Oct 2010 08:39:59 -0000
@@ -108,7 +108,7 @@ class PrivatemsgTestCase extends DrupalW
     $this->drupalGet('messages');
     $this->clickLink($subject_single);
 
-    $this->assertText(t('Displaying messages 1 - 1 of 1'), t('Pager is displayed'));
+    $this->assertNoText(t('Displaying messages 1 - 1 of 1'), t('Pager is displayed'));
     $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
     $this->assertNoText(t('&lt;&lt;'), t('Older messages link not displayed.'));
 
@@ -177,7 +177,7 @@ class PrivatemsgTestCase extends DrupalW
 
     // Load older messages and verify again.
     $this->clickLink(t('<<'));
-    $this->assertText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
+    $this->assertNoText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
     $this->assertText($bodies[0], t('Message is displayed.'));
     $this->assertText($bodies[22], t('Message is displayed.'));
     $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
@@ -188,7 +188,7 @@ class PrivatemsgTestCase extends DrupalW
 
     $this->drupalGet('messages');
     $this->clickLink($subject);
-    $this->assertText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
+    $this->assertNoText(t('Displaying messages 1 - 23 of 23'), t('Pager is displayed'));
     $this->assertText($bodies[0], t('Message is displayed.'));
     $this->assertText($bodies[22], t('Message is displayed.'));
     $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
@@ -299,7 +299,7 @@ class PrivatemsgTestCase extends DrupalW
     $this->drupalLogin($recipient2);
     $this->drupalGet('messages');
 
-    $this->assertNoText($edit['subject'], 'Sent message subject found.');
+    $this->assertNoText($edit['subject'], 'Message sent to other recipient not found.');
     $this->assertText($edit2['subject'], 'Sent message subject found.');
     $this->clickLink($edit2['subject']);
 
@@ -349,6 +349,9 @@ class PrivatemsgTestCase extends DrupalW
 
     // Navigate into the message.
     $this->clickLink($edit['subject']);
+
+    // Verify that the participants information is correct.
+    $this->assertText(t('Between you and @author', array('@author' => $author->name)));
     // Confirm that we can read the message that was sent.
     $this->assertText($edit['body'], 'Found message body.');
     $this->assertNoText(t('Reply to thread:'), 'Reply form is not displayed.');
@@ -572,7 +575,7 @@ class PrivatemsgTestCase extends DrupalW
     $this->assertText($subject, 'Subject is displayed');
     $this->assertText($body1, 'First message is displayed');
     $this->assertText($body2, 'Second message is displayed');
-    $this->assertNoText(t('Delete message'), 'Delete message is link is not displayed for user without permission');
+    $this->assertNoLink(t('Delete'), 'Delete message is link is not displayed for user without permission');
 
     // Check if access for that user is denied.
     $this->drupalGet('messages/delete/' . $return['message']['thread_id'] . '/' . $return['message']['mid']);
@@ -581,16 +584,16 @@ class PrivatemsgTestCase extends DrupalW
     // Check with user with delete access.
     $this->drupalLogin($recipient);
     $this->drupalGet('messages/view/' . $return['message']['thread_id']);
-    $this->assertText(t('Delete message'), 'Delete message is link is displayed for user without permission');
+    $this->assertText(t('Delete'), 'Delete message is link is displayed for user without permission');
 
     // Click delete link of the second message and cancel.
-    $this->clickLink(t('Delete message'), 1);
+    $this->clickLink(t('Delete'), 1);
     $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
     $this->clickLink(t('Cancel'));
     $this->assertText($body2, 'Second message is still displayed');
 
     // Confirm message deletion.
-    $this->clickLink(t('Delete message'), 1);
+    $this->clickLink(t('Delete'), 1);
     $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
     $this->drupalPost(NULL, array(), t('Delete'));
     $this->assertText(t('Message has been deleted.'), 'Message has been deleted');
@@ -598,13 +601,13 @@ class PrivatemsgTestCase extends DrupalW
     $this->assertNoText($body2, 'Second message was deleted');
 
     // Click delete link of the first message and cancel.
-    $this->clickLink(t('Delete message'));
+    $this->clickLink(t('Delete'));
     $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
     $this->clickLink(t('Cancel'));
     $this->assertText($body1, 'First message is still displayed');
 
     // Confirm message deletion.
-    $this->clickLink(t('Delete message'));
+    $this->clickLink(t('Delete'));
     $this->assertText(t('Are you sure you want to delete this message?'), 'Confirmation message displayed');
     $this->drupalPost(NULL, array(), t('Delete'));
     $this->assertText(t('Message has been deleted.'), 'Message deleted has been deleted');
@@ -619,7 +622,7 @@ class PrivatemsgTestCase extends DrupalW
     // Test delete all checkbox.
     $this->drupalLogin($admin);
     $this->drupalGet('messages/view/' . $return['message']['thread_id']);
-    $this->clickLink(t('Delete message'), 1);
+    $this->clickLink(t('Delete'), 1);
     $this->drupalPost(NULL, array('delete_options' => TRUE), t('Delete'));
     $this->assertText(t('Message has been deleted for all users.'), 'Message deleted has been deleted');
 
@@ -987,7 +990,7 @@ class PrivatemsgURLPrefixTestCase extend
     $this->assertText($edit['body'], t('Message body found on message view.'));
 
     // Check that blocked users path works as expected.
-    $this->clickLink('Block author');
+    $this->clickLink('Block');
     $this->drupalPost(NULL, NULL, t('Block @user', array('@user' => $author->name)));
     $this->assertText(t('@author has been blocked from sending you any further messages.', array('@author' => $author->name)), 'Check for block confirmation text.');
     $this->assertText($edit['body'], t('Check that we were taken back to message after block.'));
Index: pm_block_user/pm_block_user.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/pm_block_user/pm_block_user.module,v
retrieving revision 1.13
diff -u -p -r1.13 pm_block_user.module
--- pm_block_user/pm_block_user.module	20 Oct 2010 12:52:58 -0000	1.13
+++ pm_block_user/pm_block_user.module	22 Oct 2010 08:39:59 -0000
@@ -258,10 +258,10 @@ function pm_block_user_privatemsg_messag
 
   if ($user->uid <> $author->uid) {
     if ($vars['message']['is_blocked']) {
-      $vars['message_actions']['unblock_author'] = array('title' => t('Unblock author'), 'href' => 'messages/block/'. $author->uid, 'query' => array('destination' => privatemsg_get_dynamic_url_prefix() .  '/view/' . $thread_id));
+      $vars['message_actions']['unblock_author'] = array('title' => t('Unblock'), 'href' => 'messages/block/'. $author->uid, 'query' => array('destination' => privatemsg_get_dynamic_url_prefix() .  '/view/' . $thread_id));
     }
     else {
-      $vars['message_actions']['block_author'] = array('title' => t('Block author'), 'href' => 'messages/block/'. $author->uid, 'query' => array('destination' => privatemsg_get_dynamic_url_prefix() .  '/view/' . $thread_id));
+      $vars['message_actions']['block_author'] = array('title' => t('Block'), 'href' => 'messages/block/'. $author->uid, 'query' => array('destination' => privatemsg_get_dynamic_url_prefix() .  '/view/' . $thread_id));
     }
   }
 }
Index: pm_block_user/pm_block_user.test
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/pm_block_user/pm_block_user.test,v
retrieving revision 1.7
diff -u -p -r1.7 pm_block_user.test
--- pm_block_user/pm_block_user.test	7 Sep 2010 13:36:11 -0000	1.7
+++ pm_block_user/pm_block_user.test	22 Oct 2010 08:39:59 -0000
@@ -44,12 +44,12 @@ class PrivatemsgBlockUserCase extends Dr
     $this->clickLink($subject);
 
     // Block user2.
-    $this->clickLink(t('Block author'));
+    $this->clickLink(t('Block'));
     $this->drupalPost(NULL, array(), t('Block @user', array('@user' => $user2->name)));
     $this->assertText(t('@user has been blocked from sending you any further messages.', array('@user' => $user2->name)), t('Confirmation message displayed'));
 
     // Block user3.
-    $this->clickLink(t('Block author'));
+    $this->clickLink(t('Block'));
     $this->drupalPost(NULL, array(), t('Block @user', array('@user' => $user3->name)));
     $this->assertText(t('@user has been blocked from sending you any further messages.', array('@user' => $user3->name)), t('Confirmation message displayed'));
 
@@ -89,7 +89,7 @@ class PrivatemsgBlockUserCase extends Dr
     $this->drupalGet('messages');
     $this->clickLink($subject);
 
-    $this->assertNoText(t('Block user'), t('No "Block user" links displayed.'));
+    $this->assertNoLink(t('Block'), t('No "Block user" links displayed.'));
 
     // Log in as user2 and try to send messages to user1.
     $this->drupalLogin($user2);
@@ -121,9 +121,9 @@ class PrivatemsgBlockUserCase extends Dr
     $this->drupalGet('messages');
     $this->clickLink($subject);
 
-    $this->assertText(t('Recipients: @user', array('@user' => $user3->name)), t('User1 is not displayed as recipient'));
     $edit = array('body' => $reply = $this->randomName(50));
     $this->drupalPost(NULL, $edit, t('Send message'));
+    $this->assertText(t('@user has chosen to block messages from you.', array('@user' => $user1->name)));
     $this->assertText(t('A message has been sent to @user.', array('@user' => $user3->name)), t('Message sent to user 3'));
 
     // Login as user1 again and check that we didn't recieve the messages.
Index: styles/privatemsg-recipients.css
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/styles/privatemsg-recipients.css,v
retrieving revision 1.3
diff -u -p -r1.3 privatemsg-recipients.css
--- styles/privatemsg-recipients.css	22 Mar 2010 07:26:41 -0000	1.3
+++ styles/privatemsg-recipients.css	22 Oct 2010 08:39:59 -0000
@@ -1,5 +1,4 @@
 .privatemsg-message-participants {
-  border-bottom     : 1px solid #C5C5C5;
-  margin            : 0 0 0 250px; 
-
-}
\ No newline at end of file
+  border-bottom     : 2px solid #C5C5C5;
+  margin            : 0 0 20px 0; 
+}
Index: styles/privatemsg-view.css
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/styles/privatemsg-view.css,v
retrieving revision 1.6
diff -u -p -r1.6 privatemsg-view.css
--- styles/privatemsg-view.css	22 Mar 2010 07:26:41 -0000	1.6
+++ styles/privatemsg-view.css	22 Oct 2010 08:39:59 -0000
@@ -1,63 +1,111 @@
+/* $Id$ */
+
 .privatemsg-message {
-  text-align  : left;
+  width: 100%;
+  max-width: 1000px;
 }
-.privatemsg-author-column {
-  float       : left;
-  width       : 250px;
-}
-.privatemsg-message-column{
-  float       : left;
-  width       : 300px;
-}
-.privatemsg-author-column-left {
-  float       : left;
-  width       : 100px;
-}
-.privatemsg-author-column-right {
-  float       : left;
-  width       : 150px;
-  text-align  : right;
-}
-.privatemsg-message .privatemsg-author-avatar {
-  margin      : 5px;
-  text-align  : center;
-}
-.privatemsg-message .picture {
- float    : none; 
- padding  : 0 0 0 0;
+
+.privatemsg-author-avatar {
+  float: left;
+  width: 20%;
+  padding-top: 2px;
+  text-align: center;
 }
-.privatemsg-author-name {
-  margin      : 5px 15px 0px 0px;
-  font-size   : 11px;
-  font-weight : bold;
-} 
-.privatemsg-message-date {
-  color         : #777777;
-  font-size     : 9px;
-  margin        : 0px 15px 0pt 0pt;
-} 
-.clear-both {
-  clear       : both;
+
+.privatemsg-message-column {
+  float: right;
+  overflow: visible;
+  width: 78%;
+  margin-bottom: 10px;
 }
-.privatemsg-bottom-border {
+
+div.privatemsg-message-information {
   border-bottom: 1px solid #C5C5C5;
-  margin       : 0 0 10px 250px;
+  width: 100%;
+  margin-bottom: 5px;
+}
+
+.privatemsg-author-name {
+  font-weight: bold;
+  padding-right: 1em;
+  font-size: 80%;
+}
+.privatemsg-message-date {
+  color: #777777;
+  padding-right: 1em;
+  font-size: 80%;
 }
 .privatemsg-message-body {
-  padding     : 0px;
-  margin      : 0 0 0 5px;
-  overflow    : auto;
+  padding : 0;
+  overflow : visible;
+  margin-left: 10px;
+}
+
+.privatemsg-view-pager {
+  margin: 20px 0 20px 0;
+  padding-left: 0;
+  max-width: 300px;
 }
 
-.privatemsg-message-actions li {
-  list-style-type:none;
-  float:left;
-  padding:5px;
-  background-image:none;
+div.privatemsg-message ul.privatemsg-message-actions {
+  padding: 0;
 }
 
-.privatemsg-view-pager {
-  margin: 20px 0 20px 200px;
-  padding-left: 10px;
-  width: 300px;
+p.privatemsg-token-notice {
+  font-size: 80%;
+  font-style: italic;
+}
+
+span.privatemsg-token-invalid {
+  color: red;
+}
+
+span.privatemsg-token-valid {
+  font-weight: bold;
+}
+
+span.privatemsg-message-new {
+  float: right;
+  font-size: 80%;
+  font-weight:bold;
+}
+
+/*** Theme specific ****/
+
+span.privatemsg-message-new {
+  color: red;
+}
+
+/* #content is required to be more explicit than bartik */
+#content h2.privatemsg-reply {
+  margin-bottom: 10px;
+}
+
+div.privatemsg-message {
+  padding: 5px;
+}
+
+div.privatemsg-message-new {
+  background-color: #FFF5F5;
+}
+
+/**
+ * Markup free clearing. Backported from Drupal 7.
+ *
+ * @see http://perishablepress.com/press/2009/12/06/new-clearfix-hack
+ */
+.privatemsg-clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+/* IE6 */
+* html .privatemsg-clearfix {
+  height: 1%;
+}
+/* IE7 */
+*:first-child + html .privatemsg-clearfix {
+  min-height: 1%;
 }
\ No newline at end of file
