diff --git a/handlers/views_handler_area_messages.inc b/handlers/views_handler_area_messages.inc
new file mode 100644
index 0000000..eb1e22a
--- /dev/null
+++ b/handlers/views_handler_area_messages.inc
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * @file
+ * Contains views_handler_area_messages.
+ */
+
+/**
+ * Provides an area for messages.
+ */
+class views_handler_area_messages extends views_handler_area {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function option_definition() {
+    $options = parent::option_definition();
+    // Set the default to TRUE so it shows on empty pages by default.
+    $options['empty']['default'] = TRUE;
+    return $options;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function render($empty = FALSE) {
+    $return = '';
+    if (!$empty || !empty($this->options['empty'])) {
+      $return = theme('status_messages');
+    }
+    return $return;
+  }
+
+}
diff --git a/modules/views.views.inc b/modules/views.views.inc
index 3116d49..7c3f4db 100644
--- a/modules/views.views.inc
+++ b/modules/views.views.inc
@@ -81,6 +81,14 @@ function views_views_data() {
     ),
   );
 
+  $data['views']['messages'] = array(
+    'title' => t('Messages'),
+    'help' => t('Displays messages in the area.'),
+    'area' => array(
+      'handler' => 'views_handler_area_messages',
+    ),
+  );
+
   if (module_exists('contextual')) {
     $data['views']['contextual_links'] = array(
       'title' => t('Contextual Links'),
diff --git a/views.info b/views.info
index 60878fc..abfe5df 100644
--- a/views.info
+++ b/views.info
@@ -10,6 +10,7 @@ stylesheets[all][] = css/views.css
 dependencies[] = ctools
 ; Handlers
 files[] = handlers/views_handler_area.inc
+files[] = handlers/views_handler_area_messages.inc
 files[] = handlers/views_handler_area_result.inc
 files[] = handlers/views_handler_area_text.inc
 files[] = handlers/views_handler_area_text_custom.inc
