diff --git a/modules/block/block.module b/modules/block/block.module
index 3e1e83cca968b8cfdd36107716a21f57da4786a6..70dcc8e0084c1e05d1b08ffced1c7a7e3ceee006 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -277,10 +277,10 @@ function block_get_blocks_by_region($region) {
       $build[$key] = $block->content;
       unset($block->content);
       $build[$key] += array(
-        '#theme_wrappers' => array('block'),
         '#block' => $block,
         '#weight' => ++$weight,
       );
+      $build[$key]['#theme_wrappers'][] ='block';
     }
     $build['#sorted'] = TRUE;
   }
@@ -735,7 +735,9 @@ function _block_render_blocks($region_blocks) {
       }
       if (isset($block->content) && $block->content) {
         // Normalize to the drupal_render() structure.
-        $block->content = array('content' => is_string($block->content) ? array('#markup' => $block->content) : $block->content);
+        if (is_string($block->content)) {
+          $block->content = array('#markup' => $block->content);
+        }
         // Override default block title if a custom display title is present.
         if ($block->title) {
           // Check plain here to allow module generated titles to keep any
diff --git a/modules/filter/filter.admin.inc b/modules/filter/filter.admin.inc
index e4b71fce99d7a4b769b721338231bc7c5f63605c..f92a6b938c2ce892e8a455100a27548f0ef287f7 100644
--- a/modules/filter/filter.admin.inc
+++ b/modules/filter/filter.admin.inc
@@ -66,7 +66,8 @@ function filter_admin_overview_submit($form, &$form_state) {
  */
 function theme_filter_admin_overview($form) {
   $rows = array();
-  foreach ($form as $id => $element) {
+  foreach (element_children($form) as $id) {
+    $element = $form[$id];
     if (isset($element['roles']) && is_array($element['roles'])) {
       $element['weight']['#attributes']['class'] = 'text-format-order-weight';
       $rows[] = array(