diff --git a/includes/form.inc b/includes/form.inc
index 71e244204a1abc778282cceeaa1b92f1501f7f56..bf7486f54ea2f91770688099474fdf53725ec180 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -70,7 +70,7 @@ function drupal_get_form($form_id) {
   // then go on to the one that was requested if everything works.
 
   $form_build_id = md5(mt_rand());
-  if (isset($_POST['form_build_id']) && isset($_SESSION['form'][$_POST['form_build_id']])) {
+  if (isset($_POST['form_build_id']) && isset($_SESSION['form'][$_POST['form_build_id']]) && $_POST['form_id'] == $form_id) {
     // There's a previously stored multi-step form. We should handle
     // IT first.
     $stored = TRUE;