Index: webform.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/webform.module,v
retrieving revision 1.196.2.13
diff -u -p -r1.196.2.13 webform.module
--- webform.module	29 Mar 2010 03:19:49 -0000	1.196.2.13
+++ webform.module	31 Mar 2010 13:25:05 -0000
@@ -1317,7 +1317,7 @@ function webform_client_form(&$form_stat
     );
     $form['details']['uid'] = array(
       '#type' => 'value',
-      '#value' => $user->uid,
+      '#value' => isset($submission->uid) ? $submission->uid : $user->uid,
     );
     $form['details']['finished'] = array(
       '#type' => 'hidden',
@@ -1547,7 +1547,10 @@ function webform_client_form_validate($f
   if ($node->webform['submit_limit'] != -1) { // -1: Submissions are never throttled.
     module_load_include('inc', 'webform', 'includes/webform.submissions');
 
-    if ($limit_exceeded = _webform_submission_limit_check($node)) {
+    if ($form['details']['sid'] && (user_access('edit all webform submissions') || ($form['details']['uid'] == $user->uid && user_access('edit own webform submissions')))) {
+      // Should not check limit when edit submission.
+    }
+    else if ($limit_exceeded = _webform_submission_limit_check($node)) {
       $error = theme('webform_view_messages', $node, 0, 1, 0, $limit_exceeded, array_keys(user_roles()));
       form_set_error('', $error);
       return;
@@ -1872,7 +1875,7 @@ function webform_client_form_submit($for
           'submission' => $submission,
         );
         drupal_mail('webform', 'submission', $address, $language, $mail_params, $email['from']);
-  
+
         // Debugging output for email.
         if (variable_get('webform_debug', 0) >= 2) {
           drupal_set_message('E-mail Headers: <pre>' . check_plain(print_r($headers, TRUE)) . '</pre>To: ' . check_plain($address) . '<br />From: ' . check_plain($email['from']) . '<br />Subject: ' . check_plain($email['subject']) . '<br />E-mail Body: <pre>' . check_plain($email['message']) . '</pre>');
