Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.70.2.30.2.91.2.103
diff -u -p -r1.70.2.30.2.91.2.103 privatemsg.module
--- privatemsg.module	29 Nov 2009 22:34:50 -0000	1.70.2.30.2.91.2.103
+++ privatemsg.module	2 Dec 2009 20:48:38 -0000
@@ -347,7 +347,7 @@ function privatemsg_thread_load($thread_
 
         // Do not show messages on the last page that would show on the page
         // before. This will only work when using the visual pager.
-        if ($start < $last_page && $max_amount != PRIVATEMSG_UNLIMITED) {
+        if ($start < $last_page && $max_amount != PRIVATEMSG_UNLIMITED && $max_amount < $thread['message_count']) {
           unset($thread['older_start']);
           $thread['to'] = $thread['newer_start'] = $max_amount = $last_page;
           // Start from the first message - this is a specific hack to make sure
Index: privatemsg.test
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.test,v
retrieving revision 1.2.2.12
diff -u -p -r1.2.2.12 privatemsg.test
--- privatemsg.test	26 Nov 2009 18:42:54 -0000	1.2.2.12
+++ privatemsg.test	2 Dec 2009 20:48:40 -0000
@@ -89,6 +89,8 @@ class PrivatemsgTestCase extends DrupalW
     $this->clickLink($subject_single);
     
     $this->assertText(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.'));
 
     $this->drupalGet('messages');
     $this->clickLink($subject);
@@ -99,7 +101,7 @@ class PrivatemsgTestCase extends DrupalW
     $this->assertNoText($bodies[12], t('Hidden message is not displayed.'));
     $this->assertText($bodies[13], t('Message is displayed.'));
     $this->assertText($bodies[22], t('Message is displayed.'));
-    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
 
     variable_set('privatemsg_view_use_max_as_default', TRUE);
     $this->drupalGet('messages');
@@ -129,7 +131,7 @@ class PrivatemsgTestCase extends DrupalW
     $this->assertText($bodies[0], t('Message is displayed.'));
     $this->assertText($bodies[7], t('Message is displayed.'));
     $this->assertNoText($bodies[9], t('Hidden message is not displayed.'));
-    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+    $this->assertNoText(t('&lt;&lt;'), t('Older messages link not displayed.'));
 
     // Going back should follow the same order.
     $this->clickLink(t('>>'));
@@ -151,15 +153,15 @@ class PrivatemsgTestCase extends DrupalW
     $this->assertNoText($bodies[17], t('Hidden message is not displayed.'));
     $this->assertText($bodies[18], t('Message is displayed.'));
     $this->assertText($bodies[22], t('Message is displayed.'));
-    $this->assertNoText(t('>>'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
 
     // Load older messages and verify again.
     $this->clickLink(t('<<'));
     $this->assertText(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('>>'), t('Newer messages link not displayed.'));
-    $this->assertNoText(t('<<'), t('Older messages link not displayed.'));
+    $this->assertNoText(t('&gt;&gt;'), t('Newer messages link not displayed.'));
+    $this->assertNoText(t('&lt;&lt;'), t('Older messages link not displayed.'));
   }
 
   /**
