Index: heartbeat.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/heartbeat.admin.inc,v
retrieving revision 1.1.2.15.2.20.2.68
diff -u -r1.1.2.15.2.20.2.68 heartbeat.admin.inc
--- heartbeat.admin.inc	5 Jan 2011 12:49:46 -0000	1.1.2.15.2.20.2.68
+++ heartbeat.admin.inc	16 Jan 2011 22:44:23 -0000
@@ -628,8 +628,9 @@
   );
   $options = array(
     0 => t('No more link'),
-    1 => t('Display "full list" link in block display'),
-    2 => t('Display an ajax-driven older messages link')
+    1 => t('Display "full list" link'),
+    2 => t('Display an ajax-driven older messages link'),
+    3 => t('Display an ajax-driven older messages link and a "full list" link')
   );
   $form['fs_settings']['block_show_pager'] = array(
     '#title' => t('Show "older messages" link in block display'),
Index: heartbeat.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/Attic/heartbeat.js,v
retrieving revision 1.1.2.1.2.22
diff -u -r1.1.2.1.2.22 heartbeat.js
--- heartbeat.js	13 Dec 2010 21:51:36 -0000	1.1.2.1.2.22
+++ heartbeat.js	16 Jan 2011 22:44:23 -0000
@@ -103,18 +103,19 @@
 Drupal.heartbeat.prependMessages = function(data) {
 
   var result = Drupal.parseJson(data);
-  
-  if (result['data'] != '') {
-    var stream_selector = '#heartbeat-stream-' + result['stream'];
-    // Append the messages
-    $(stream_selector + ' .heartbeat-messages-wrapper').prepend(result['data']);
-  
-    // Update the times in the stream
+  var stream_selector = '#heartbeat-stream-' + result['stream'];
+
+  // Update the times in the stream
+  if (result['time_updates'] != undefined) {
     var time_updates = result['time_updates'];
     for (uaid in time_updates) {
-      $(stream_selector + ' #beat-item-' + uaid).find('.heartbeat_times').text(time_updates[uaid]);
+      $(stream_selector + ' #beat-item-' + uaid).find('.heartbeat_times').html(time_updates[uaid]);
     }
-    
+  }
+
+  // Append the messages
+  if (result['data'] != '') {
+    $(stream_selector + ' .heartbeat-messages-wrapper').prepend(result['data']);
     // Reattach behaviors for new added html
     Drupal.attachBehaviors($(stream_selector + ' .heartbeat-messages-wrapper'));
   }
Index: heartbeat.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/heartbeat.module,v
retrieving revision 1.1.2.26.2.46.2.105
diff -u -r1.1.2.26.2.46.2.105 heartbeat.module
--- heartbeat.module	5 Jan 2011 18:33:49 -0000	1.1.2.26.2.46.2.105
+++ heartbeat.module	16 Jan 2011 22:44:23 -0000
@@ -566,7 +566,7 @@
       '@node_title' => '[node:title-link]',
     ),
   );
-    
+
   $info['heartbeat_add_node'] = array(
     'message' => '!username has added !node_type !node_title.',
     'message_concat' => '!username has added the following !types: %node_title%.',
@@ -672,7 +672,7 @@
       ),
     );
   }
-  
+
   return $info;
 }
 
@@ -1682,8 +1682,7 @@
  */
 function theme_heartbeat_stream_more_link($heartbeatAccess, $offset_time, $page = TRUE, $absolute = FALSE) {
 
-  $ajax_pager = $page ? $heartbeatAccess->getStream()->page_pager_ajax : $heartbeatAccess->getStream()->block_show_pager == 2;
-  $path = 'heartbeat/' . $heartbeatAccess->getAccess();
+  $ajax_pager = $page ? $heartbeatAccess->getStream()->page_pager_ajax : ($heartbeatAccess->getStream()->block_show_pager == 2 || $heartbeatAccess->getStream()->block_show_pager == 3);
   $attributes = array('html' => FALSE, 'attributes' => array('class' => 'heartbeat-older-messages'));
 
   if (isset($_GET['filters'])) {
@@ -1693,12 +1692,11 @@
     $attributes['absolute'] = TRUE;
   }
 
-  // Blocks link to the pages
-  if (!$page && !$ajax_pager) {
-    return '<div class="more fullarchive">' . l(t('Full list'), $path, $attributes) . '</div>';
-  }
-  else {
+  $content = '';
+  $content .= '<div class="heartbeat-more-messages-wrapper">';
+  if ($ajax_pager) {
 
+    $path = 'heartbeat/' . $heartbeatAccess->getAccess();
     $path .= '/' . $offset_time;
 
     // Add a fourth paramter to indicate that where on a profile page.
@@ -1710,13 +1708,25 @@
       $attributes['attributes']['onclick'] = 'javascript:Drupal.heartbeat.getOlderMessages(this, ' . (int)$page . '); return false;';
     }
 
-    $formattedlink = '<span class="heartbeat-more-messages-wrapper">';
-    $formattedlink .= l(t('Older messages'), $path, $attributes);
-    $formattedlink .= '<span class="heartbeat-messages-throbber">&nbsp;</span></span>';
+    $formattedlink = l(t('Older messages'), $path, $attributes) . '<span class="heartbeat-messages-throbber">&nbsp;</span>';
+    $content .= $formattedlink;
+
+  }
 
-    return $formattedlink;
+  // Blocks link to the pages.
+  if (!$page && (!$ajax_pager || $heartbeatAccess->getStream()->block_show_pager == 3)) {
+    $path = 'heartbeat/' . $heartbeatAccess->getAccess();
+    if (isset($attributes['attributes']['onclick'])) {
+      unset($attributes['attributes']['onclick']);
+    }
+    $fulllink = '<div class="more fullarchive heartbeat-full">' . l(t('Full list'), $path, $attributes) . '</div>';
+    $content .= $fulllink;
   }
 
+  $content .= '</div>';
+
+  return $content;
+
 }
 
 /**
Index: heartbeat.pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/Attic/heartbeat.pages.inc,v
retrieving revision 1.1.2.26
diff -u -r1.1.2.26 heartbeat.pages.inc
--- heartbeat.pages.inc	15 Jan 2011 20:49:55 -0000	1.1.2.26
+++ heartbeat.pages.inc	16 Jan 2011 22:44:23 -0000
@@ -154,7 +154,7 @@
     $placeholders = implode(',', array_fill(0, count($uaids), "%d"));
     $result = db_query("SELECT uaid, timestamp FROM {heartbeat_activity} WHERE uaid IN($placeholders) ", $uaids);
     while ($row = db_fetch_object($result)) {
-      $json['time_updates'][$row->uaid] = _theme_time_ago($row->timestamp);
+      $json['time_updates'][$row->uaid] = theme('heartbeat_time_ago', $row);
     }
   }
 
Index: includes/heartbeatactivity.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/includes/Attic/heartbeatactivity.inc,v
retrieving revision 1.1.2.1.2.43
diff -u -r1.1.2.1.2.43 heartbeatactivity.inc
--- includes/heartbeatactivity.inc	5 Jan 2011 12:49:46 -0000	1.1.2.1.2.43
+++ includes/heartbeatactivity.inc	16 Jan 2011 22:44:23 -0000
@@ -229,7 +229,7 @@
               $merged_string .= ' ' . $stored_variables["@". $target];
             }
             elseif ($i < $count && $count > 2) {
-              if (!empty($this->template->concat_args['merge_separator_t'])) {
+              if (strlen(strip_tags($this->template->concat_args['merge_separator_t'])) > 0) {
                 $merged_string .= ' ' . t($this->template->concat_args['merge_separator']);
               }
               else {
@@ -238,7 +238,7 @@
               $merged_string .= ' ' . $stored_variables["@". $target];
             }
             elseif ($i == $count || $count == 2) {
-              if (!empty($this->template->concat_args['merge_end_separator_t'])) {
+              if (strlen(strip_tags($this->template->concat_args['merge_end_separator_t'])) > 0) {
                 $merged_string .= ' ' . t($this->template->concat_args['merge_end_separator']);
               }
               else {
Index: includes/heartbeatmessagebuilder.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/includes/Attic/heartbeatmessagebuilder.inc,v
retrieving revision 1.1.2.5.2.35
diff -u -r1.1.2.5.2.35 heartbeatmessagebuilder.inc
--- includes/heartbeatmessagebuilder.inc	27 Dec 2010 19:31:48 -0000	1.1.2.5.2.35
+++ includes/heartbeatmessagebuilder.inc	16 Jan 2011 22:44:23 -0000
@@ -44,7 +44,7 @@
    */
   public function get_instance(HeartbeatAccess $heartbeatState) {
     if (variable_get('heartbeat_debug', 0)) {
-      require 'heartbeatmessagebuilderdebug.inc';
+      require_once 'heartbeatmessagebuilderdebug.inc';
       return new HeartbeatMessageBuilderDebug($heartbeatState);
     }
     else {
Index: modules/heartbeat_comments/heartbeat_comments.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/heartbeat/modules/heartbeat_comments/Attic/heartbeat_comments.module,v
retrieving revision 1.1.2.43
diff -u -r1.1.2.43 heartbeat_comments.module
--- modules/heartbeat_comments/heartbeat_comments.module	21 Dec 2010 23:27:10 -0000	1.1.2.43
+++ modules/heartbeat_comments/heartbeat_comments.module	16 Jan 2011 22:44:24 -0000
@@ -199,6 +199,8 @@
       }
       // Try to load from cache.
       elseif ($comment_cache_enabled && $objects_cache = cache_get('heartbeat:comments:'. $message->uaid. ':'. $message_nid_cache)) {
+        // Make sure the textarea.js script is attached.
+        drupal_add_js('misc/textarea.js');
         $output = $objects_cache->data;
       }
       // Cache this widget.
