diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module
index 00d484c52569b553a531973e4e1374ef45d8bf03..496a043a76a61b0211da64a5a6e630c8a4327b71 100644
--- a/modules/dblog/dblog.module
+++ b/modules/dblog/dblog.module
@@ -138,9 +138,12 @@ 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' => $log_entry['user']->uid,
+      'uid' => $user_uid,
       'type' => substr($log_entry['type'], 0, 64),
       'message' => $log_entry['message'],
       'variables' => serialize($log_entry['variables']),