diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php
index 0981753884f..9c582daf660 100644
--- a/mod/assign/locallib.php
+++ b/mod/assign/locallib.php
@@ -7441,6 +7441,8 @@ class assign {
                     $completion->update_state($this->get_course_module(), $complete, $member->id);
                 }
             }
+        } else if ($completion->is_enabled($this->get_course_module()) && $instance->completionsubmit) {
+            $completion->update_state($this->get_course_module(), $complete, $userid);
         }
 
         // Logging.
@@ -7448,10 +7450,6 @@ class assign {
             \mod_assign\event\statement_accepted::create_from_submission($this, $submission)->trigger();
         }
 
-        if ($completion->is_enabled($this->get_course_module()) && $instance->completionsubmit) {
-            $completion->update_state($this->get_course_module(), $complete, $userid);
-        }
-
         if (!$instance->submissiondrafts) {
             $this->notify_student_submission_receipt($submission);
             $this->notify_graders($submission);
