diff --git a/includes/common.inc b/includes/common.inc
index 881f886e7142150f7a57ab6013865fa5067b5ce9..144a822bdf79ec147f1a18adb8ea2bcc8277c0f9 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -34,17 +34,16 @@ function drupal_get_title() {
  * @{
  */
 function drupal_set_message($message = NULL, $type = "status") {
-  static $stored_message;
+  static $stored_message = array();
 
   if (isset($message)) {
-    $stored_message->message = $message;
-    $stored_message->type = $type;
+    $stored_message[] = array($message, $type);
   }
 
   return $stored_message;
 }
 
-function drupal_get_message() {
+function drupal_get_messages() {
   return drupal_set_message();
 }
 // @}
@@ -437,7 +436,6 @@ function valid_input_data($data) {
     // check attributes:
     $match += preg_match("/\W(dynsrc|datasrc|data|lowsrc|on[a-z]+)\s*=[^>]+?>/i", $data);
 
-
     // check tags:
     $match += preg_match("/<\s*(applet|script|object|style|embed|form|blink|meta|html|frame|iframe|layer|ilayer|head|frameset|xml)/i", $data);
 
diff --git a/themes/chameleon/chameleon.theme b/themes/chameleon/chameleon.theme
index 3389b27afb7a618df66dad194a4febb2ed8aa979..d72e2d2aec59d52848242998a6d666dd106445db 100644
--- a/themes/chameleon/chameleon.theme
+++ b/themes/chameleon/chameleon.theme
@@ -1,5 +1,4 @@
 <?php
-
 // $Id$
 
 function chameleon_help($section) {
@@ -66,8 +65,9 @@ function chameleon_header($title = "") {
     $output .= "<small>$help</small><hr />";
   }
 
-  if ($message = drupal_get_message()) {
-    $output .= "<strong>". t("Status") ."</strong>: ". $message->message ."<hr />";
+  foreach (drupal_get_messages() as $message) {
+    list($message, $type) = $message;
+    $output .= "<strong>". t("Status") ."</strong>: $message<hr />";
   }
 
   return $output;
diff --git a/themes/marvin/marvin.theme b/themes/marvin/marvin.theme
index f01c49a9ebc6193d6ffaca48f3c260a0278a8e56..b2d8d8316b7f4e2c322d705a0d69238edbe78920 100644
--- a/themes/marvin/marvin.theme
+++ b/themes/marvin/marvin.theme
@@ -65,8 +65,9 @@ function marvin_header() {
     $output .= "<small>$help</small><hr />";
   }
 
-  if ($message = drupal_get_message()) {
-    $output .= "<strong>". t("Status") ."</strong>: ". $message->message ."<hr />";
+  foreach (drupal_get_messages() as $message) {
+    list($message, $type) = $message;
+    $output .= "<strong>". t("Status") ."</strong>: $message<hr />";
   }
 
   return $output;
diff --git a/themes/xtemplate/xtemplate.theme b/themes/xtemplate/xtemplate.theme
index 7e87cf73cd22f92fcf7e87aa51825ea05b915036..1c5e6e9775109e625b0fcc20f3b6bae0e2daeeed 100644
--- a/themes/xtemplate/xtemplate.theme
+++ b/themes/xtemplate/xtemplate.theme
@@ -111,9 +111,10 @@ function xtemplate_header() {
     $xtemplate->template->parse("header.help");
   }
 
-  if ($message = drupal_get_message()) {
-    $xtemplate->template->assign("message", ucfirst($message->message));
-    $xtemplate->template->assign("type", $message->type);
+  foreach (drupal_get_messages() as $message) {
+    list($message, $type) = $message;
+    $xtemplate->template->assign("message", ucfirst($message));
+    $xtemplate->template->assign("type", $type);
     $xtemplate->template->parse("header.message");
   }