Index: context_reaction_block.inc
===================================================================
--- context_reaction_block.inc	(revision 6634)
+++ context_reaction_block.inc	(working copy)
@@ -266,6 +266,12 @@
     static $build_contexts;
     static $context_blocks = array();
     static $empty_blocks = array();
+    
+    $i18nblocks = FALSE;
+    if (module_exists('i18nblocks')) {
+      global $language;
+      $i18nblocks = TRUE;
+    }
 
     // Static cache a region => block array of blocks that should be built *if*
     // the given region is requested. Note that the blocks are not themselves
@@ -284,7 +290,15 @@
             $block->context = $context->name;
             $block->bid = "{$block->module}-{$block->delta}";
             $block->cache = isset($info[$block->bid]->cache) ? $info[$block->bid]->cache : BLOCK_NO_CACHE;
-            $build_queue[$block->region][] = $block;
+            if ($i18nblocks) {
+              $block_language = db_result(db_query("SELECT language FROM {i18n_blocks} WHERE module = '%s' AND delta = '%s'", $block->module, $block->delta));
+              if ($language->language == $block_language || empty($block_language)) {
+                $build_queue[$block->region][] = $block;
+              }
+            }
+            else {
+              $build_queue[$block->region][] = $block;
+            }
           }
         }
       }
@@ -372,6 +386,7 @@
         $block->subject = '';
       }
     }
+    
     return $block;
   }
 
