diff --git a/sitecatalyst.install b/sitecatalyst.install
index c812057..df24791 100644
--- a/sitecatalyst.install
+++ b/sitecatalyst.install
@@ -8,23 +8,7 @@
  * Implements hook_install().
  */
 function sitecatalyst_install() {
-  $t = get_t();
-
-  // Perform an update from the old omniture module.
-  if (module_exists('omniture')) {
-    // Look for any legacy "omniture_*" variables and rename them.
-    $result = db_select('variable', 'v')
-      ->fields('v')
-      ->condition('v.name', 'omniture_%', 'LIKE')
-      ->execute();
-
-    foreach ($result as $variable) {
-      $new_name = str_replace('omniture', 'sitecatalyst', $variable->name);
-      variable_set($new_name, unserialize($variable->value));
-    }
-
-    drupal_set_message($t('Now that you are using the SiteCatalyst module, you should disable and uninstall the Omniture module.'), 'warning');
-  }
+  sitecatalyst_update_7001();
 
   // On installation, track all the existing roles.
   $result = db_select('role', 'r')
@@ -39,7 +23,7 @@ function sitecatalyst_install() {
     // Check if variable is not already set from a previous install.
     if (strpos(variable_get($sitecatalyst_role, 'new'), 'new') !== FALSE) {
       variable_set($sitecatalyst_role, TRUE);
-      drupal_set_message(t('Role %rolename is now being tracked by SiteCatalyst.', array('%rolename' => $role->name)));
+      drupal_set_message($t('Role %rolename is now being tracked by SiteCatalyst.', array('%rolename' => $role->name)));
     }
   }
 }
@@ -65,3 +49,79 @@ function sitecatalyst_update_7000() {
   $ret = array();
   return $ret;
 }
+
+/**
+ * Update from Omniture to SiteCatalyst.
+ */
+function sitecatalyst_update_7001() {
+  $t = get_t();
+
+  // Perform an update from the old omniture module.
+  if (module_exists('omniture')) {
+    // Look for any legacy "omniture_*" variables and rename them.
+    $result = db_select('variable', 'v')
+      ->fields('v')
+      ->condition('v.name', 'omniture_%', 'LIKE')
+      ->execute();
+
+    foreach ($result as $variable) {
+      $new_name = str_replace('omniture', 'sitecatalyst', $variable->name);
+      variable_set($new_name, unserialize($variable->value));
+      variable_del($variable->name);
+    }
+
+    // Migrate any existing contexts that refer to the old omniture variables.
+    if (module_exists('context')) {
+      $contexts = context_load();
+      foreach ($contexts as $cid => &$context) {
+        if (isset($context->reactions)) {
+          foreach ($context->reactions as $reaction_name => $reaction) {
+            if ($reaction_name == 'omniture_vars') {
+              $context->reactions['sitecatalyst_vars'] = $context->reactions['omniture_vars'];
+              $context->reactions['sitecatalyst_vars']['sitecatalyst_variables'] = $context->reactions['sitecatalyst_vars']['omniture_variables'];
+              unset($context->reactions['omniture_vars']);
+              unset($context->reactions['sitecatalyst_vars']['omniture_variables']);
+              context_save($context);
+            }
+          }
+        }
+      }
+    }
+    cache_clear_all('*', 'cache', TRUE);
+
+    // Check if any modules exist that depend on Omniture. This will typically
+    // happen when you have a feature.
+    $modules = system_list('module_enabled');
+    $flagged_modules = array();
+    foreach ($modules as $module) {
+      if (_sitecatalyst_module_includes_omniture($module->info)) {
+        $flagged_modules[] = $module->name;
+      }
+    }
+    if (!empty($flagged_modules)) {
+      drupal_set_message($t('The following modules may depend on Omniture: @modules. If any of these are features, you should re-export them immediately to avoid loosing analytics data.', array('@modules' => implode(', ', $flagged_modules))), 'warning');
+    }
+
+    drupal_set_message($t('Now that you are using the SiteCatalyst module, you should disable and uninstall the Omniture module.'), 'warning');
+  }
+}
+
+/**
+ * Helper function to determine if the given module is a feature containing any
+ * omniture specific elements.
+ *
+ * @param  array $info
+ *   An array from $module->info as returned by system_list('module_enabled').
+ * @return bool
+ */
+function _sitecatalyst_module_includes_omniture($info) {
+  foreach ($info as $key => $value) {
+    if (is_array($value)) {
+      _sitecatalyst_module_includes_omniture($value);
+    }
+    elseif (stripos('omniture', $value) !== FALSE) {
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
