### Eclipse Workspace Patch 1.0
#P Advantage Media
Index: sites/all/modules/contrib/features_extra/fe_block.module
===================================================================
--- sites/all/modules/contrib/features_extra/fe_block.module	(revision 827)
+++ sites/all/modules/contrib/features_extra/fe_block.module	(working copy)
@@ -62,7 +62,17 @@
   // Add the components
   foreach ($data as $object_name) {
     $export['features'][$component][$object_name] = $object_name;
-
+    $block_roles=db_query("
+    	SELECT distinct r.name, r.rid 
+    	FROM {block_role} br
+        INNER JOIN {role} r on br.rid=r.rid 
+    	WHERE concat(br.module,'-',br.delta)=:object_name", 
+      array(':object_name'=>$object_name)
+    );
+    
+    while($row=$block_roles->fetchObject()){
+      $export['features']['user_role'][$row->name]=$row->name; // we only care about the name of the role here
+    }
     // Boxes.
     if (strpos($object_name, 'block-') === 0) {
       $machine_name = substr($object_name, strlen('block-'));
@@ -104,8 +114,20 @@
       $custom_theme = $theme_key = $_theme_key;
       $blocks = _block_rehash();
       usort($blocks, '_fe_block_compare');
-
       foreach ($blocks as $block) {
+        $block_roles=db_query("
+        	SELECT r.name, r.rid 
+        	FROM {block_role} br
+            INNER JOIN {role} r on br.rid=r.rid 
+        	WHERE br.module=:module and br.delta=:delta", 
+          array(':module'=>$block['module'],
+            ':delta'=>$block['delta'])
+        );
+        
+        while($row=$block_roles->fetchObject()){
+          $block['roles'][]=$row->name; // we only care about the name of the role here
+        }
+        
         unset($block['bid'], $block['info']);
         $block_id = _fe_block_build_id($block);
         if (empty($block_id)) {
@@ -168,6 +190,23 @@
       }
 
       drupal_write_record('block', $block, array('module', 'delta', 'theme'));
+      
+      db_query("DELETE FROM {block_role} WHERE module=:module and delta=:delta",
+        array(':module'=>$block['module'],
+            ':delta'=>$block['delta'])
+      );
+      foreach((array)$block['roles'] as $role){
+        db_query("
+        	REPLACE INTO {block_role}(module, delta, rid)
+            SELECT :module, :delta, rid
+            FROM {role} r
+        	WHERE r.name=:role", 
+          array(':module'=>$block['module'],
+            ':delta'=>$block['delta'],
+            ':role'=>$role)
+        );
+        
+      }
     }
   }
 
