diff --git a/core/modules/dblog/dblog.admin.inc b/core/modules/dblog/dblog.admin.inc
index d432b5b..b5b3372 100644
--- a/core/modules/dblog/dblog.admin.inc
+++ b/core/modules/dblog/dblog.admin.inc
@@ -58,21 +58,11 @@ function dblog_overview() {
     ->execute();
 
   foreach ($result as $dblog) {
-    // Check for required properties.
-    if (isset($dblog->message) && isset($dblog->variables)) {
-      // Messages without variables or user specified text.
-      if ($dblog->variables === 'N;') {
-        $message = $dblog->message;
-      }
-      // Message to translate with injected variables.
-      else {
-        $message = t($dblog->message, unserialize($dblog->variables));
-      }
-      if (isset($dblog->wid)) {
-        // Truncate link_text to 56 chars of message.
-        $log_text = truncate_utf8(filter_xss($message, array()), 56, TRUE, TRUE);
-        $message = l($log_text, 'admin/reports/event/' . $dblog->wid, array('html' => TRUE));
-      }
+    $message = dblog_format_message($dblog);
+    if ($message && isset($dblog->wid)) {
+      // Truncate link_text to 56 chars of message.
+      $log_text = truncate_utf8(filter_xss($message, array()), 56, TRUE, TRUE);
+      $message = l($log_text, 'admin/reports/event/' . $dblog->wid, array('html' => TRUE));
     }
     $rows[] = array('data' =>
       array(
@@ -141,17 +131,7 @@ function dblog_top($type) {
 
   $rows = array();
   foreach ($result as $dblog) {
-    // Check for required properties.
-    if (isset($dblog->message) && isset($dblog->variables)) {
-      // Messages without variables or user specified text.
-      if ($dblog->variables === 'N;') {
-        $message = $dblog->message;
-      }
-      // Message to translate with injected variables.
-      else {
-        $message = t($dblog->message, unserialize($dblog->variables));
-      }
-    }
+    $message = dblog_format_message($dblog);
     $rows[] = array($dblog->count, $message);
   }
 
@@ -182,17 +162,7 @@ function dblog_event($id) {
   $severity = watchdog_severity_levels();
   $result = db_query('SELECT w.*, u.name, u.uid FROM {watchdog} w INNER JOIN {users} u ON w.uid = u.uid WHERE w.wid = :id', array(':id' => $id))->fetchObject();
   if ($dblog = $result) {
-    // Check for required properties.
-    if (isset($dblog->message) && isset($dblog->variables)) {
-      // Messages without variables or user specified text.
-      if ($dblog->variables === 'N;') {
-        $message = $dblog->message;
-      }
-      // Message to translate with injected variables.
-      else {
-        $message = t($dblog->message, unserialize($dblog->variables));
-      }
-    }
+    $message = dblog_format_message($dblog);
     $rows = array(
       array(
         array('data' => t('Type'), 'header' => TRUE),
@@ -421,3 +391,32 @@ function dblog_clear_log_submit() {
   db_delete('watchdog')->execute();
   drupal_set_message(t('Database log cleared.'));
 }
+
+/**
+ * Formats a database log message.
+ *
+ * @param stdClass $row
+ *   The record from the watchdog table. The object properties are: wid, uid,
+ *   severity, type, timestamp, message, variables, link, name.
+ *
+ * @return string|false
+ *   The formatted log message or FALSE if the message or variables properties
+ *   are not set.
+ */
+function dblog_format_message($row) {
+  // Check for required properties.
+  if (isset($row->message) && isset($row->variables)) {
+    // Messages without variables or user specified text.
+    if ($row->variables === 'N;') {
+      $message = $row->message;
+    }
+    // Message to translate with injected variables.
+    else {
+      $message = t($row->message, unserialize($row->variables));
+    }
+  }
+  else {
+    $message = FALSE;
+  }
+  return $message;
+}
