diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py
index eda36d648f461e2ab322a54a750bc57249f53b76..8121c655a7ce6ba7a684e40ec0d5742a0faba10e 100644
--- a/aleksis/apps/paweljong/models.py
+++ b/aleksis/apps/paweljong/models.py
@@ -194,7 +194,7 @@ class Event(ExtensibleModel):
     def individual_cost(self, request=None):
         if request and request.user.is_authenticated and Voucher.objects.filter(event=self, person=request.user.person, used=False).exists():
             voucher = Voucher.objects.get(event=self, person=request.user.person, used=False)
-            individual_cost = voucher.discount * self.cost / 100
+            individual_cost = (100 - voucher.discount) * self.cost / 100
             return individual_cost
         else:
             return self.cost
diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py
index a1d84e06272e69c607c733cfc02e38c19ccf165d..e0773416e8862660af7e848c0a8570c31b145a45 100644
--- a/aleksis/apps/paweljong/views.py
+++ b/aleksis/apps/paweljong/views.py
@@ -541,13 +541,14 @@ class RegisterEventWizardView(SessionWizardView):
         cleaned_data_consent = self.get_cleaned_data_for_step("consent")
 
         if cleaned_data_financial["voucher_code"]:
-            vouchers = Voucher.objects.filter(
-                person=person, event=event, used=False, code=cleaned_data_financial["voucher_code"]
-            )
-            if vouchers:
-                voucher = vouchers.first()
-            else:
-                messages.error(self.request, _("You entered an invalid voucher code!"))
+            if getattr(self.request.user, "person", None):
+                vouchers = Voucher.objects.filter(
+                    person=self.request.user.person, event=event, used=False, code=cleaned_data_financial["voucher_code"]
+                )
+                if vouchers:
+                    voucher = vouchers.first()
+                else:
+                    messages.error(self.request, _("You entered an invalid voucher code!"))
 
         # Create email address
         if cleaned_data_email: