diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module
index d831548..ffdb5ee 100644
--- a/modules/dblog/dblog.module
+++ b/modules/dblog/dblog.module
@@ -136,19 +136,20 @@ function _dblog_get_message_types() {
  * Implements hook_watchdog().
  *
  * Note some values may be truncated for database column size restrictions.
+ * This function is UTF-8 safe.
  */
 function dblog_watchdog(array $log_entry) {
   Database::getConnection('default', 'default')->insert('watchdog')
     ->fields(array(
       'uid' => $log_entry['uid'],
-      'type' => substr($log_entry['type'], 0, 64),
+      'type' => drupal_substr($log_entry['type'], 0, 64),
       'message' => $log_entry['message'],
       'variables' => serialize($log_entry['variables']),
       'severity' => $log_entry['severity'],
-      'link' => substr($log_entry['link'], 0, 255),
+      'link' => drupal_substr($log_entry['link'], 0, 255),
       'location' => $log_entry['request_uri'],
       'referer' => $log_entry['referer'],
-      'hostname' => substr($log_entry['ip'], 0, 128),
+      'hostname' => drupal_substr($log_entry['ip'], 0, 128),
       'timestamp' => $log_entry['timestamp'],
     ))
     ->execute();
