diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 5556f38..a08cb45 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -1709,6 +1709,9 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO
   if (!$in_error_state && function_exists('module_implements')) {
     $in_error_state = TRUE;
 
+    // The user object may not exist in all conditions, so 0 is substituted if needed.
+    $user_uid = isset($user->uid) ? $user->uid : 0;
+
     // Prepare the fields to be logged
     $log_entry = array(
       'type'        => $type,
@@ -1717,6 +1720,7 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO
       'severity'    => $severity,
       'link'        => $link,
       'user'        => $user,
+      'uid'         => $user_uid,
       'request_uri' => $base_root . request_uri(),
       'referer'     => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
       'ip'          => ip_address(),
diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module
index a0d6d3b..9420c53 100644
--- a/modules/dblog/dblog.module
+++ b/modules/dblog/dblog.module
@@ -138,12 +138,9 @@ function _dblog_get_message_types() {
  * Note some values may be truncated for database column size restrictions.
  */
 function dblog_watchdog(array $log_entry) {
-  // The user object may not exist in all conditions, so 0 is substituted if needed.
-  $user_uid = isset($log_entry['user']->uid) ? $log_entry['user']->uid : 0;
-
   Database::getConnection('default', 'default')->insert('watchdog')
     ->fields(array(
-      'uid' => $user_uid,
+      'uid' => $log_entry['uid'],
       'type' => substr($log_entry['type'], 0, 64),
       'message' => $log_entry['message'],
       'variables' => serialize($log_entry['variables']),
diff --git a/modules/dblog/dblog.test b/modules/dblog/dblog.test
index ca844a3..2e9810b 100644
--- a/modules/dblog/dblog.test
+++ b/modules/dblog/dblog.test
@@ -105,6 +105,7 @@ class DBLogTestCase extends DrupalWebTestCase {
       'severity'    => $severity,
       'link'        => NULL,
       'user'        => $this->big_user,
+      'uid'         => isset($this->big_user->uid) ? $this->big_user->uid : 0,
       'request_uri' => $base_root . request_uri(),
       'referer'     => $_SERVER['HTTP_REFERER'],
       'ip'          => ip_address(),
@@ -387,6 +388,7 @@ class DBLogTestCase extends DrupalWebTestCase {
       'severity'    => WATCHDOG_NOTICE,
       'link'        => NULL,
       'user'        => $this->big_user,
+      'uid'         => isset($this->big_user->uid) ? $this->big_user->uid : 0,
       'request_uri' => $base_root . request_uri(),
       'referer'     => $_SERVER['HTTP_REFERER'],
       'ip'          => ip_address(),
diff --git a/modules/simpletest/tests/actions_loop_test.module b/modules/simpletest/tests/actions_loop_test.module
index 7776490..261cb80 100644
--- a/modules/simpletest/tests/actions_loop_test.module
+++ b/modules/simpletest/tests/actions_loop_test.module
@@ -81,6 +81,7 @@ function watchdog_skip_semaphore($type, $message, $variables = array(), $severit
     'severity'    => $severity,
     'link'        => $link,
     'user'        => $user,
+    'uid'         => isset($user->uid) ? $user->uid : 0,
     'request_uri' => $base_root . request_uri(),
     'referer'     => $_SERVER['HTTP_REFERER'],
     'ip'          => ip_address(),
diff --git a/modules/syslog/syslog.module b/modules/syslog/syslog.module
index afbec7f..1327606 100644
--- a/modules/syslog/syslog.module
+++ b/modules/syslog/syslog.module
@@ -109,7 +109,7 @@ function syslog_watchdog(array $log_entry) {
     '!ip'          => $log_entry['ip'],
     '!request_uri' => $log_entry['request_uri'],
     '!referer'     => $log_entry['referer'],
-    '!uid'         => $log_entry['user']->uid,
+    '!uid'         => $log_entry['uid'],
     '!link'        => strip_tags($log_entry['link']),
     '!message'     => strip_tags(!isset($log_entry['variables']) ? $log_entry['message'] : strtr($log_entry['message'], $log_entry['variables'])),
   ));
