diff --git a/aleksis/apps/kort/forms.py b/aleksis/apps/kort/forms.py
index 7f22c671539df6a150a98e843815291caae628f8..4608bc75bf94ea4516cb9c82a80d93d6e1cc9d47 100644
--- a/aleksis/apps/kort/forms.py
+++ b/aleksis/apps/kort/forms.py
@@ -65,7 +65,7 @@ class CardIssueForm(forms.Form):
         cleaned_data["all_persons"] = Person.objects.filter(
             Q(pk__in=cleaned_data.get("persons", []))
             | Q(member_of__in=cleaned_data.get("groups", []))
-        )
+        ).distinct()
 
         if not cleaned_data["all_persons"].exists():
             raise forms.ValidationError(_("The selected groups don't have any members."))
diff --git a/aleksis/apps/kort/models.py b/aleksis/apps/kort/models.py
index e84d0174dce201f9492bc6f298643f94f3640ec8..b1faaf4a18f9fba9d89991b9ec247739f383f4f7 100644
--- a/aleksis/apps/kort/models.py
+++ b/aleksis/apps/kort/models.py
@@ -270,7 +270,7 @@ class Card(ExtensibleModel):
     @property
     def is_valid(self):
         return (
-            self.valid_until <= timezone.now().date() and not self.deactivated and self.chip_number
+            self.valid_until >= timezone.now().date() and not self.deactivated and self.chip_number
         )
 
     def deactivate(self):