 heartbeat.module |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/heartbeat.module b/heartbeat.module
index cd8b526..5eb0327 100644
--- a/heartbeat.module
+++ b/heartbeat.module
@@ -373,6 +373,12 @@ function heartbeat_theme() {
     'heartbeat_messages' => array(
       'arguments' => array('messages' => array(), 'stream' => NULL, 'link' => ''),
     ),
+    'heartbeat_stream_errors' => array(
+      'arguments' => array('errors' => array(), 'stream' => NULL),
+    ),
+    'heartbeat_stream_empty' => array(
+      'arguments' => array('stream' => NULL),
+    ),
     'heartbeat_stream_more_link' => array(
       'arguments' => array('heartbeatAccess' => array(), 'offset_time' => 0, 'page' => TRUE, 'absolute' => FALSE),
     ),
@@ -870,10 +876,10 @@ function theme_heartbeat_list($messages, HeartbeatAccess $heartbeatAccess, $link
 
   if (empty($messages)) {
     if ($heartbeatAccess->hasErrors()) {
-      $content .= '<p>'. implode('<br />', $heartbeatAccess->getErrors()) .'</p>';
+      $content .= theme('heartbeat_stream_errors', $heartbeatAccess->getErrors(), $heartbeatAccess);
     }
     else {
-      $content .= '<p>' . t('No activity yet.') . '</p>';
+      $content .= theme('heartbeat_stream_empty', $heartbeatAccess);
     }
   }
   else {
@@ -945,6 +951,26 @@ function theme_heartbeat_buttons($message) {
 }
 
 /**
+ * Theme function for stream with errors
+ */
+function theme_heartbeat_stream_errors($errors, HeartbeatAccess $heartbeatAccess) {
+
+  $content .= '<p class="heartbeat-error-stream">'. implode('<br />', $errors) .'</p>';
+
+  return $content;
+}
+
+/**
+ * Theme function for empty stream
+ */
+function theme_heartbeat_stream_empty(HeartbeatAccess $heartbeatAccess) {
+
+  $content .= '<p class="heartbeat-empty-stream">' . t('No activity yet.') . '</p>';
+
+  return $content;
+}
+
+/**
  * Theme function for messages
  */
 function theme_heartbeat_messages($messages,  HeartbeatAccess $heartbeatAccess, $link = '') {
