diff --git a/commerce_license.install b/commerce_license.install
index defec8d..504b5fb 100644
--- a/commerce_license.install
+++ b/commerce_license.install
@@ -133,6 +133,22 @@ function commerce_license_schema() {
         'not null' => TRUE,
         'default' => 0,
       ),
+      // Defaults to NULL to distinguish a lack of data from user 0 (anonymous,
+      // or Drush).
+      'revision_uid' => array(
+        'description' => 'The {users}.uid of the user who created the revision.',
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+        'default' => NULL,
+      ),
+      array(
+        'description' => 'The log entry explaining the changes in this revision.',
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'default' => NULL,
+      ),
     ),
     'primary key' => array('revision_id'),
     'indexes' => array(
@@ -148,6 +164,10 @@ function commerce_license_schema() {
         'table' => 'commerce_product',
         'columns' => array('product_id' => 'product_id'),
       ),
+      'revision_uid' => array(
+        'table' => 'users',
+        'columns' => array('revision_uid' => 'uid'),
+      ),
     ),
   );
 
@@ -330,3 +350,27 @@ function commerce_license_update_7102(&$sandbox) {
     }
   }
 }
+
+/**
+ * Add the 'revision_uid' and 'log' columns to the commerce_license_revision table.
+ */
+function commerce_license_update_7103() {
+  if (!db_field_exists('commerce_license_revision', 'revision_uid')) {
+    db_add_field('commerce_license_revision', 'revision_uid', array(
+      'description' => 'The {users}.uid of the user who created the revision.',
+      'type' => 'int',
+      'unsigned' => TRUE,
+      'not null' => FALSE,
+      'default' => NULL,
+    ));
+  }
+  if (!db_field_exists('commerce_license_revision', 'log')) {
+    db_add_field('commerce_license_revision', 'log', array(
+      'description' => 'The log entry explaining the changes in this revision.',
+      'type' => 'text',
+      'not null' => FALSE,
+      'size' => 'big',
+      'default' => NULL,
+    ));
+  }
+}
diff --git a/includes/commerce_license.controller.inc b/includes/commerce_license.controller.inc
index f7ee2a2..0cf3c81 100644
--- a/includes/commerce_license.controller.inc
+++ b/includes/commerce_license.controller.inc
@@ -25,13 +25,25 @@ class CommerceLicenseEntityController extends EntityBundlePluginEntityController
   /**
    * Overrides EntityBundlePluginEntityController::saveRevision().
    *
-   * Maintains the revision_created and revision_ended timestamps.
+   * Maintains the revision_created and revision_ended timestamps and the
+   * revision_uid column.
    */
   protected function saveRevision($entity) {
     if ($entity->is_new_revision) {
       $current_time = commerce_license_get_time();
-      $entity->revision_created = $current_time;
-      $entity->revision_ended = 0;
+
+      if (!isset($entity->revision_created)) {
+        $entity->revision_created = $current_time;
+      }
+      if (!isset($entity->revision_ended)) {
+        $entity->revision_ended = 0;
+      }
+      if (!isset($entity->revision_uid)) {
+        $entity->revision_uid = $GLOBALS['user']->uid;
+      }
+      if (!isset($entity->log)) {
+        $entity->log = '';
+      }
 
       // A previous revision exists, close it.
       if (!empty($entity->revision_id)) {
@@ -41,6 +53,9 @@ class CommerceLicenseEntityController extends EntityBundlePluginEntityController
           ->execute();
       }
     }
+    else {
+      unset($entity->log);
+    }
 
     parent::saveRevision($entity);
   }
