diff --git a/registration.module b/registration.module
index f280081..cc7b052 100644
--- a/registration.module
+++ b/registration.module
@@ -1114,6 +1114,12 @@ function registration_is_registered(Registration $registration, $anon_mail = NUL
     ->condition('entity_id', $registration->entity_id)
     ->condition('entity_type', $registration->entity_type);
 
+  // If there is a complete state, only look for completed registrations.
+  $complete_state = registration_get_states('complete');
+  if (!empty($complete_state)) {
+    $query->condition('state', $complete_state->registration_state_id);
+  }
+
   if ($anon_mail) {
     // there's a user with this email, check to make sure they're not registered
     if ($user = user_load_by_mail($anon_mail)) {
