diff --git a/omniture.module b/omniture.module
index e70d5e9..f706e56 100644
--- a/omniture.module
+++ b/omniture.module
@@ -60,11 +60,49 @@ function omniture_theme($existing, $type, $theme, $path) {
 }
 
 /**
+ * Implements hook_context_plugins().
+ */
+function omniture_context_plugins() {
+  $plugins = array();
+  $plugins['omniture_reaction_variables'] = array(
+    'handler' => array(
+      'path' => drupal_get_path('module', 'omniture') .'/plugins/context',
+      'file' => 'omniture_reaction_variables.inc',
+      'class' => 'omniture_reaction_variables',
+      'parent' => 'context_reaction',
+    ),
+  );
+  return $plugins;
+}
+
+/**
+ * Implements hook_context_registry().
+ */
+function omniture_context_registry() {
+  $reg = array(
+    'reactions' => array(
+      'omniture_vars' => array(
+        'title' => t('Omniture Variables'),
+        'plugin' => 'omniture_reaction_variables',
+      ),
+    ),
+  );
+  return $reg;
+}
+
+/**
  * Implementation of hook_omniture_variables().
  */
 function omniture_omniture_variables() {
   $variables = array();
 
+  // Include variables set using the context module.
+  if (module_exists('context')) {
+    if ($plugin = context_get_plugin('reaction', 'omniture_vars')) {
+      $plugin->execute($variables);
+    }
+  }
+
   // Include variables from the "custom variables" section of the settings form.
   $settings_variables = variable_get('omniture_variables', array());
   foreach ($settings_variables as $variable) {
diff --git a/plugins/context/omniture_reaction_variables.inc b/plugins/context/omniture_reaction_variables.inc
new file mode 100644
index 0000000..dd8a91c
--- /dev/null
+++ b/plugins/context/omniture_reaction_variables.inc
@@ -0,0 +1,67 @@
+<?php
+
+class omniture_reaction_variables extends context_reaction {
+  /**
+   * Implements context_reaction::options_form()
+   *
+   * Allow users to specify varables that should be set for the given context.
+   */
+  function options_form($context) {
+    $settings = $this->fetch_from_context($context);
+
+    // Get the existing variables from context.
+    $existing_variables = isset($settings['omniture_variables']) ? $settings['omniture_variables'] : array();
+
+    // Build the variables form.
+    _omniture_variables_form($form, $existing_variables);
+
+    // Modify the #parents property to make sure values are stored in the
+    // location that contexts expects them.
+    $parents = array('reactions', 'plugins', $this->plugin);
+
+    foreach (element_children($form['omniture_variables']) as $key) {
+      if (is_numeric($key)) {
+        $form['omniture_variables'][$key]['name']['#parents'] = array_merge($parents, $form['omniture_variables'][$key]['name']['#parents']);
+        $form['omniture_variables'][$key]['value']['#parents'] = array_merge($parents, $form['omniture_variables'][$key]['value']['#parents']);
+      }
+    }
+
+    // Modify form to call the contexts-specific versions of certain functions.
+    $form['add_another_variable']['#submit'] = array('omniture_context_add_another_variable_submit');
+    $form['add_another_variable']['#ajax']['callback'] = 'omniture_context_add_another_variable_js';
+
+    return $form;
+  }
+
+  /**
+   * Implements context_reaction::execute()
+   *
+   * Return a list of variables based on the current context. Note that tokens
+   * will be replaced later in _omniture_format_variables().
+   */
+  function execute(&$variables) {
+    $settings = array();
+
+    foreach ($this->get_contexts() as $context) {
+      foreach ($context->reactions['omniture_vars']['omniture_variables'] as $key => $value) {
+        $variables[$value['name']] = $value['value'];
+      }
+    }
+    return $variables;
+  }
+}
+
+/**
+ * Submit handler to add more variables in the context reaction form.
+ */
+function omniture_context_add_another_variable_submit($form, &$form_state) {
+  $form_state['omniture_variables'] = $form_state['input']['reactions']['plugins']['omniture_vars'];
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Ajax callback for adding more variables in the context reaction form.
+ */
+function omniture_context_add_another_variable_js($form, $form_state) {
+  return $form['reactions']['plugins']['omniture_vars']['omniture_variables'];
+}
