diff --git a/casetracker.module b/casetracker.module
index 8795b33..b9aa872 100644
--- a/casetracker.module
+++ b/casetracker.module
@@ -1072,3 +1072,24 @@ function casetracker_token_list($type = 'all') {
   module_load_include('inc', 'casetracker', 'casetracker.token');
   return _casetracker_token_list($type);
 }
+
+/**
+ * Implements hook_mailhandler().
+ */
+function casetracker_mailhandler($entity, $result, $number, $header, $mailbox) {
+  // Get the full node data for the node being modified (or the node the comment 
+  // will be attached to).
+  $casenode = node_load($entity->nid);
+
+  // Get the current casetracker data for this node.
+  if (($casetracker_info = casetracker_nodeapi($casenode, 'load'))) {
+    // Casetracker expects assign_to to be a username, not a uid.
+    if (is_numeric($casetracker_info['casetracker']->assign_to)) {
+      $casetracker_info['casetracker']->assign_to = casetracker_get_name($casetracker_info['casetracker']->assign_to);
+    }
+    // Add the current casetracker data to the node/comment being updated,
+    // so it's preserved when the node/comment is saved.
+    $entity->casetracker = $casetracker_info['casetracker'];
+  }
+  return $entity;
+}
