diff --git a/plugins/context_reaction_block.inc b/plugins/context_reaction_block.inc
index 66e1872..637f753 100644
--- a/plugins/context_reaction_block.inc
+++ b/plugins/context_reaction_block.inc
@@ -330,6 +330,9 @@ class context_reaction_block extends context_reaction {
         $options = $this->fetch_from_context($context);
         if (!empty($options['blocks'])) {
           foreach ($options['blocks'] as $block) {
+            if (isset($block['module']) && isset($block['delta'])) {
+              $block = array_merge((array) $info[$block['module'] .'-'. $block['delta']], $block);
+            }
             $block = (object) $block;
             $block->context = $context->name;
             $block->bid = "{$block->module}-{$block->delta}";
@@ -339,7 +342,7 @@ class context_reaction_block extends context_reaction {
           }
         }
       }
-      
+
       $this->is_editable_check($context_blocks);
       foreach ($context_blocks as $r => $blocks) {
         $context_blocks[$r] = _block_render_blocks($blocks);
@@ -359,7 +362,7 @@ class context_reaction_block extends context_reaction {
   }
 
   /**
-   * Determine if there is an active context editor block, and set a flag.  We will set a flag so 
+   * Determine if there is an active context editor block, and set a flag.  We will set a flag so
    * that we can make sure that blocks with empty content have some default content.  This is
    * needed so the save of the context inline editor does not remove the blocks with no content.
    */
@@ -382,7 +385,7 @@ class context_reaction_block extends context_reaction {
       }
     }
   }
-  
+
   /**
    * Generate the safe weight range for a block being added to a region such that
    * there are enough potential unique weights to support all blocks.
@@ -452,11 +455,15 @@ class context_reaction_block extends context_reaction {
       if (module_exists('block')) {
         $theme_key = variable_get('theme_default', 'garland');
         $result = db_select('block')
-          ->fields('block', array('module', 'weight', 'delta', 'region', 'title'))
+          ->fields('block')
           ->condition('theme', $theme_key)
           ->execute();
         foreach ($result as $row) {
           if (isset($block_info["{$row->module}-{$row->delta}"])) {
+            $block_info["{$row->module}-{$row->delta}"] = (object) array_merge((array) $row, (array) $block_info["{$row->module}-{$row->delta}"]);
+            unset($block_info["{$row->module}-{$row->delta}"]->status);
+            unset($block_info["{$row->module}-{$row->delta}"]->visibility);
+            unset($block_info["{$row->module}-{$row->delta}"]->cache);
             $block_info["{$row->module}-{$row->delta}"]->weight = $row->weight;
             $block_info["{$row->module}-{$row->delta}"]->region = $row->region;
             $block_info["{$row->module}-{$row->delta}"]->title = $row->title;
@@ -586,7 +593,7 @@ class context_reaction_block extends context_reaction {
         module_load_include('module', 'block', 'block');
         $block = $info[$bid];
         $block->title = isset($block->title) ? $block->title : '';
-        $block->context = $context;        
+        $block->context = $context;
         $block->region = '';
         $rendered_blocks = _block_render_blocks(array($block)); // For E_STRICT warning
         $block = array_shift($rendered_blocks);
