diff --git a/context.core.inc b/context.core.inc
index 4812255..0f1fc63 100644
--- a/context.core.inc
+++ b/context.core.inc
@@ -343,6 +343,16 @@ function context_preprocess_page(&$vars) {
 }
 
 /**
+* Implementation of hook_delivery_callback_alter().
+* Based on menu_position's implementation.
+*/
+function context_page_delivery_callback_alter() {
+  if ($plugin = context_get_plugin('reaction', 'menu_position')) {
+    $plugin->execute();
+  }
+}
+
+/**
  * Implementation of hook_preprocess_html().
  */
 function context_preprocess_html(&$vars) {
diff --git a/context.plugins.inc b/context.plugins.inc
index 79349c5..7c0a59e 100644
--- a/context.plugins.inc
+++ b/context.plugins.inc
@@ -120,6 +120,11 @@ function _context_context_registry() {
       'description' => t('Control menu active class using context.'),
       'plugin' => 'context_reaction_menu',
     );
+    $registry['reactions']['menu_position'] = array(
+      'title' => t('Menu position'),
+      'description' => t('Set the current page to behave like a child of the selected menu item.'),
+      'plugin' => 'context_reaction_menu_position',
+    );
   }
   if (module_exists('css_injector')) {
     $registry['reactions']['css_injector'] = array(
@@ -302,6 +307,14 @@ function _context_context_plugins() {
       'parent' => 'context_reaction',
     ),
   );
+  $plugins['context_reaction_menu_position'] = array(
+    'handler' => array(
+      'path' => drupal_get_path('module', 'context') . '/plugins',
+      'file' => 'context_reaction_menu_position.inc',
+      'class' => 'context_reaction_menu_position',
+      'parent' => 'context_reaction_menu',
+    ),
+  );
   $plugins['context_reaction_theme'] = array(
     'handler' => array(
       'path' => drupal_get_path('module', 'context') . '/plugins',
