diff --git a/mail_logger.module b/mail_logger.module
index 786f8fa..3ed031d 100644
--- a/mail_logger.module
+++ b/mail_logger.module
@@ -86,32 +86,19 @@ function mail_logger_mail_alter(&$message) {
 //this line taken from mail.inc:drupal_mail()
   $message['body'] = is_array($message['body']) ? drupal_wrap_mail(implode("\n\n", $message['body'])) : drupal_wrap_mail($message['body']);
   $message['date_sent'] = time();
-  $new_mlid = '';
-  switch ($GLOBALS['db_type']) {
-    case 'mysql':
-    case 'mysqli':
-      $new_mlid = NULL;
-      break;
-    case 'pgsql':
-      $new_mlid = db_result(db_query("SELECT nextval('{mail_logger_mlid_seq}')"));
-      break;
-  }
-  $args = array(
-    $new_mlid,
-    $message['id'],
-    $message['to'],
-    $message['subject'],
-    $message['body'],
-    $message['from'],
-    serialize($message['headers']),
-    $message['date_sent'],
-    $message['language']->language,
+
+  $record = array(
+    'mailkey'   => $message['id'],
+    'mail_to'   => $message['to'],
+    'subject'   => $message['subject'],
+    'body'      => $message['body'],
+    'mail_from' => $message['from'],
+    'headers'   => serialize($message['headers']),
+    'date_sent' => $message['date_sent'],
+    'language'  => $message['language']->language,
   );
 
-  db_query("INSERT INTO {mail_logger} (
-  `mlid` , `mailkey` , `to` , `subject` , `body` , `from` , `headers`, `date_sent`, `language`
-  ) VALUES (
-  %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s' )", $args);
+  drupal_write_record('mail_logger', $record);
 
   // Fire 'mail_logger' 'mail_sent' action.
   module_invoke_all('mail_logger', 'mail_sent', $message, mail_logger_email_user($message['from']), mail_logger_email_user($message['to']));
