diff --git a/context.core.inc b/context.core.inc
index 2d44c75..1e59e6b 100644
--- a/context.core.inc
+++ b/context.core.inc
@@ -57,6 +57,11 @@ function context_theme() {
     'path' => drupal_get_path('module', 'context') . '/theme',
     'file' => 'context_reaction_block.theme.inc',
   );
+  $items['context_block_edit_wrap'] = array(
+    'render element' => 'element',
+    'path' => drupal_get_path('module', 'context') . '/theme',
+    'file' => 'context_reaction_block.theme.inc',
+  );
   return $items;
 }
 
diff --git a/plugins/context_reaction_block.inc b/plugins/context_reaction_block.inc
index c14aa98..5bcb3fc 100644
--- a/plugins/context_reaction_block.inc
+++ b/plugins/context_reaction_block.inc
@@ -299,15 +299,7 @@ class context_reaction_block extends context_reaction {
    */
   protected function editable_block($block) {
     if (!empty($block->content)) {
-      $block->content = array(
-        'content' => $block->content,
-        'context' => array('#markup' => "<a id='context-block-{$block->module}-{$block->delta}' class='context-block editable edit-{$block->context}'></a>"),
-      );
-      //Contextual links are in the wrong spot in the render array once we've nested them
-      if (isset($block->content['content']['#contextual_links'])) {
-        $block->content['#contextual_links'] = $block->content['content']['#contextual_links'];
-        unset($block->content['content']['#contextual_links']);
-      }
+      $block->content['#theme_wrappers'][] = 'context_block_edit_wrap';
     }
     else {
       // the block alter in context.module should ensure that blocks are never
diff --git a/theme/context_reaction_block.theme.inc b/theme/context_reaction_block.theme.inc
index c103bab..37272af 100644
--- a/theme/context_reaction_block.theme.inc
+++ b/theme/context_reaction_block.theme.inc
@@ -128,3 +128,13 @@ function template_preprocess_context_block_browser_item(&$vars) {
     $added[$vars['bid']] = TRUE;
   }
 }
+
+/**
+ * Theme wrapper for editable blocks.
+ *
+ * @ingroup themeable
+ */
+function theme_context_block_edit_wrap($vars) {
+  $block = $vars['element']['#block'];
+  return $vars['element']['#children'] . "<a id='context-block-{$block->module}-{$block->delta}' class='context-block editable edit-{$block->context}'></a>";
+}
