diff --git a/webform.module b/webform.module
index 23217db..555f7f9 100644
--- a/webform.module
+++ b/webform.module
@@ -2741,9 +2741,12 @@ function webform_client_form_validate($form, &$form_state) {
     $user_limit_exceeded = webform_submission_user_limit_check($node);
   }
 
+  // Check that the form is still open at time of submission.
+  $closed = empty($node->webform['status']);
+
   // Prevent submission by throwing an error.
-  if ((!$allowed_role || $total_limit_exceeded || $user_limit_exceeded) && $GLOBALS['user']->uid != 1) {
-    theme('webform_view_messages', array('node' => $node, 'page' => 1, 'submission_count' => 0, 'user_limit_exceeded' => $user_limit_exceeded, 'total_limit_exceeded' => $total_limit_exceeded, 'allowed_roles' => $allowed_roles, 'closed' => FALSE, 'cached' => FALSE));
+  if ((!$allowed_role || $total_limit_exceeded || $user_limit_exceeded || $closed)) {
+    theme('webform_view_messages', array('node' => $node, 'page' => 1, 'submission_count' => 0, 'user_limit_exceeded' => $user_limit_exceeded, 'total_limit_exceeded' => $total_limit_exceeded, 'allowed_roles' => $allowed_roles, 'closed' => $closed, 'cached' => FALSE));
     form_set_error('', NULL);
     return;
   }
