diff --git a/views/votingapi.views.inc b/views/votingapi.views.inc
index 859e018..408a58f 100644
--- a/views/votingapi.views.inc
+++ b/views/votingapi.views.inc
@@ -67,6 +67,24 @@ function votingapi_views_data() {
     ),
   );
 
+  // previous value
+  $data['votingapi_vote']['previous_value'] = array(
+      'title' => t('Previous Value'), // The item it appears as on the UI,
+      'help' => t('The previous value of an individual cast vote.'), // The help that appears on the UI,
+      // Information for displaying a title as a field
+      'field' => array(
+          'handler' => 'votingapi_views_handler_field_value',
+          'click sortable' => TRUE,
+      ),
+      'filter' => array(
+          'handler' => 'views_handler_filter_numeric',
+          'allow empty' => TRUE,
+      ),
+      'sort' => array(
+          'handler' => 'votingapi_views_handler_sort_nullable',
+      ),
+  );
+
   // value type
   $data['votingapi_vote']['value_type'] = array(
     'title' => t('Value type'), // The item it appears as on the UI,
diff --git a/votingapi.install b/votingapi.install
index 7a01065..8412c6f 100644
--- a/votingapi.install
+++ b/votingapi.install
@@ -13,6 +13,7 @@ function votingapi_schema() {
       'entity_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
       'value' => array('type' => 'float', 'not null' => TRUE, 'default' => 0),
       'value_type' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => 'percent'),
+      'previous_value' => array('type' => 'float', 'not null' => FALSE, 'description' => 'Keeps track of previous vote, so you can do comparisions'),
       'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => 'vote'),
       'uid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
       'timestamp' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
@@ -57,6 +58,17 @@ function votingapi_update_last_removed() {
 }
 
 /**
+ * Add column in voteapi_vote table for previous vote
+ */
+function votingapi_update_7204() {
+  $field = array(
+    'type' => 'float',
+    'not null' => FALSE,
+    'description' => 'Keeps track of previous vote, so you can do comparisions',
+  );
+  db_add_field('votingapi_vote', 'previous_value', $field);
+}
+/**
  * Fix default values for entity_type columns
  */
 function votingapi_update_7203() {
diff --git a/votingapi.module b/votingapi.module
index 40204ff..8c514b2 100644
--- a/votingapi.module
+++ b/votingapi.module
@@ -135,12 +135,25 @@ function votingapi_set_votes(&$votes, $criteria = NULL) {
   if (!isset($criteria)) {
     // If the calling function didn't explicitly set criteria for vote deletion,
     // build up the delete queries here.
-    foreach ($votes as $vote) {
-      $tmp = votingapi_current_user_identifier();
+      $user_info = votingapi_current_user_identifier();
+    foreach ($votes as &$vote) {
+      $tmp = $user_info;
       $tmp += $vote;
-      if (isset($tmp['value'])) {
+      if (isset($vote['value'])) {
+        // Have to unset the value to be able to select the correct record
+        // in the database to delete.
         unset($tmp['value']);
       }
+      if (isset($vote['previous_value'])) {
+        // Have to unset the value to be able to select the correct record
+        // in the database to delete.
+        unset($tmp['previous_value']);
+      }
+      else {
+        // Previous value is not set. Need to set it for it to be added to
+        // the database.
+        $vote['previous_value'] = votingapi_select_single_vote_value($tmp);
+      }
       votingapi_delete_votes(votingapi_select_votes($tmp));
     }
   }
