diff --git a/modules/syslog/syslog.module b/modules/syslog/syslog.module
index 64226b3..f44ea85 100644
--- a/modules/syslog/syslog.module
+++ b/modules/syslog/syslog.module
@@ -102,6 +102,9 @@ function syslog_watchdog(array $log_entry) {
     openlog(variable_get('syslog_identity', 'drupal'), LOG_NDELAY, variable_get('syslog_facility', $default_facility));
   }
 
+  // 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;
+
   $message = strtr(variable_get('syslog_format', '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'), array(
     '!base_url'    => $base_url,
     '!timestamp'   => $log_entry['timestamp'],
@@ -109,7 +112,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'         => $user_id,
     '!link'        => strip_tags($log_entry['link']),
     '!message'     => strip_tags(!isset($log_entry['variables']) ? $log_entry['message'] : strtr($log_entry['message'], $log_entry['variables'])),
   ));
