diff --git a/casetracker.module b/casetracker.module
index 8795b33..12494b4 100644
--- a/casetracker.module
+++ b/casetracker.module
@@ -265,26 +265,40 @@ function casetracker_comment(&$comment, $op) {
       db_query("DELETE FROM {casetracker_comment_status} WHERE cid = %d", $comment->cid);
       break;
     case 'view':
-      // If this is a preview we won't have a cid yet.
-      if (empty($comment->cid)) {
-        $case_data['new'] = (object)$comment->casetracker;
-        $case_data['new']->assign_to = casetracker_get_uid($case_data['new']->assign_to);
-        $case = node_load($comment->nid);
-        $case_data['old'] = drupal_clone($case->casetracker);
-      }
-      else {
-        $results = db_query("SELECT * FROM {casetracker_comment_status} WHERE cid = %d", $comment->cid);
-        while ($result = db_fetch_object($results)) {
-          $state = $result->state ? 'new' : 'old';
-          $case_data[$state] = $result;
-        }
-      }
+      $case_data = casetracker_comment_changes($comment);
       $comment->comment = theme('casetracker_comment_changes', $case_data['old'], $case_data['new']) . $comment->comment;        
       break;
   }
 }
 
 /**
+ * Generate comment case data on changes between subsequent comments
+ *
+ * @param $comment
+ *   The current comment object
+ * @return $case_data
+ *   information on the old and new casetracker status
+ */
+function casetracker_comment_changes($comment) {
+  // If this is a preview we won't have a cid yet.
+  if (empty($comment->cid)) {
+    $case_data['new'] = (object)$comment->casetracker;
+    $case_data['new']->assign_to = casetracker_get_uid($case_data['new']->assign_to);
+    $case = node_load($comment->nid);
+    $case_data['old'] = drupal_clone($case->casetracker);
+  }
+  else {
+    $results = db_query("SELECT * FROM {casetracker_comment_status} WHERE cid = %d", $comment->cid);
+    while ($result = db_fetch_object($results)) {
+      $state = $result->state ? 'new' : 'old';
+      $case_data[$state] = $result;
+    }
+  }
+
+  return $case_data;
+}
+
+/**
  * Implementation of hook_form_alter().
  */
 function casetracker_form_alter(&$form, &$form_state, $form_id) {
@@ -620,7 +634,7 @@ function casetracker_realm_load($realm) {
  */
 function casetracker_case_state_save($case_state = NULL) {
   if (!$case_state['name'] || !$case_state['realm']) { 
-    return NULL; 
+    return NULL;
   }
   // Need to collect information into another array since the db columns have different names : (
   $record = array(
diff --git a/casetracker.token.inc b/casetracker.token.inc
index 0f83682..3706178 100644
--- a/casetracker.token.inc
+++ b/casetracker.token.inc
@@ -19,6 +19,16 @@ function _casetracker_token_values($type, $object = NULL) {
     $assignedUser = user_load($object->casetracker->assign_to);
     $values['case_assign_to'] = $assignedUser->name;
   }
+  if ($type == 'comment') {
+    // Load the node off this comment to see if casetracker tokens are relevant
+    $node = is_array($object) ? node_load($object['nid']) : node_load($object->nid);
+
+    if (casetracker_is_case($node->type)) {
+      $case_data = casetracker_comment_changes($object);
+      $values['case_comment_changes'] = theme('casetracker_comment_changes', $case_data['old'], $case_data['new']);
+    }
+  }
+
   return $values;
 }
 
@@ -32,7 +42,11 @@ function _casetracker_token_list($type = 'all') {
     $tokens['casetracker']['case_priority'] = t('Case Priority');
     $tokens['casetracker']['case_assign_to_uid'] = t('Case Assigned to (UID)');
     $tokens['casetracker']['case_assign_to'] = t('Case Assigned to (Name)');
-    return $tokens;
   }
+  if ($type == 'comment' || $type == 'all') {
+    $tokens['casetracker']['case_comment_changes'] = t('Changes between subsequent case comments');
+  }
+
+  return $tokens;
 }
 
