diff --git a/delta_blocks/delta_blocks.install b/delta_blocks/delta_blocks.install
index 2f0a239..68dad3b 100644
--- a/delta_blocks/delta_blocks.install
+++ b/delta_blocks/delta_blocks.install
@@ -39,4 +39,11 @@ function delta_blocks_install() {
   variable_set('delta_blocks_branding_site_slogan_hidden', FALSE);
   variable_set('delta_blocks_breadcrumb_title_hidden', TRUE);
   variable_set('delta_blocks_breadcrumb_current', TRUE);
-}
\ No newline at end of file
+}
+
+/**
+ * Clear the cache for the hook_page_alter() implementation to be noticed.
+ */
+function delta_blocks_update_7300(&$sandbox) {
+  cache_clear_all();
+}
diff --git a/delta_blocks/delta_blocks.module b/delta_blocks/delta_blocks.module
index d73a2b1..3952b1c 100644
--- a/delta_blocks/delta_blocks.module
+++ b/delta_blocks/delta_blocks.module
@@ -45,6 +45,18 @@ function delta_blocks_permission() {
 }
 
 /**
+ * Implements hook_module_implements_alter().
+ */
+function delta_blocks_module_implements_alter(&$implementations, $hook) {
+  if ($hook == 'page_alter') {
+    // Reorder hook_page_alter to capture all modules' status messages.
+    $group = $implementations['delta_blocks'];
+    unset($implementations['delta_blocks']);
+    $implementations['delta_blocks'] = $group;
+  }
+}
+
+/**
  * Implements hook_block_info().
  */
 function delta_blocks_block_info() {
@@ -295,6 +307,26 @@ function delta_blocks_preprocess_block(&$vars) {
 }
 
 /**
+ * Implements hook_page_alter().
+ */
+function delta_blocks_page_alter(&$page) {
+  foreach (element_children($page) as $region) {
+    foreach (element_children($page[$region]) as $block_id) {
+      if ($block_id == 'delta_blocks_messages') {
+        // Set the messages here so we're confident we've got all messages.
+        $page[$region][$block_id]['#markup'] = theme('status_messages');
+
+        // It's possible there are no messages, so remove the block if that's the case.
+        if (empty($page[$region][$block_id]['#markup'])) {
+          unset($page[$region][$block_id]);
+        }
+        break;
+      }
+    }
+  }
+}
+
+/**
  * Provides individual block content.
  */
 function delta_blocks_get_content($delta) {
@@ -340,7 +372,8 @@ function delta_blocks_get_content($delta) {
       return theme('delta_blocks_breadcrumb', $variables);
 
     case 'messages':
-      return theme('status_messages');
+      // Actual content is generate during delta_blocks_page_alter().
+      return '<!-- messages -->';
 
     case 'tabs':
       $variables['primary'] = menu_primary_local_tasks();
@@ -446,4 +479,4 @@ function _delta_blocks_is_enabled($delta) {
   }
   
   return FALSE;
-}
\ No newline at end of file
+}
