diff --git a/aleksis/apps/paweljong/forms.py b/aleksis/apps/paweljong/forms.py
index 56c7d4aecce1a599af83245aa7043de76c52e11a..2b9a31f845531783144e524aa87d6ff3841fe674 100644
--- a/aleksis/apps/paweljong/forms.py
+++ b/aleksis/apps/paweljong/forms.py
@@ -256,7 +256,7 @@ class RegisterEventContactDetails(ExtensibleForm):
         Fieldset(
             _("Personal data"),
             Row("first_name", "additional_name", "last_name"),
-            Row("date_of_birth", "sex"),
+            Row("date_of_birth", "place_of_birth", "sex"),
         ),
         Fieldset(
             _("Address data"),
@@ -265,7 +265,7 @@ class RegisterEventContactDetails(ExtensibleForm):
         ),
         Fieldset(
             _("Contact details"),
-            Row("mobile_number", "email"),
+            Row("mobile_number", "phone_number", "email"),
         ),
         Fieldset(
             _("School details"),
@@ -282,6 +282,7 @@ class RegisterEventContactDetails(ExtensibleForm):
         label=_("Additional names"),
         help_text=_("Please enter any additional names."),
         required=False,
+        disabled=True,
     )
 
     last_name = forms.CharField(
@@ -315,10 +316,20 @@ class RegisterEventContactDetails(ExtensibleForm):
         ),
     )
 
+    phone_number = PhoneNumberField(
+        label=_("Phone number"),
+        required=False,
+    )
+
     date_of_birth = forms.DateField(
         label=_("Date of birth"),
     )
 
+    place_of_birth = forms.CharField(
+        label=_("Place of birth"),
+        required=False,
+    )
+
     sex = forms.ChoiceField(
         label=_("Sex"),
         help_text=_(
@@ -378,7 +389,8 @@ class RegisterEventAdditional(ExtensibleForm):
 
         for field in event.linked_group.additional_fields.all():
             field_instance = getattr(fields, field.field_type)(
-                required=False,
+                required=field.required,
+                help_text=field.help_text,
             )
             self.fields[field.title] = field_instance
             node = Fieldset(f"{field.title}", f"{field.title}")
diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py
index 809a124ddf4214d3eaad6e1f778c7a955e06bd37..484ed1e2bf6763f459181a919bd152a1748fd05a 100644
--- a/aleksis/apps/paweljong/views.py
+++ b/aleksis/apps/paweljong/views.py
@@ -495,7 +495,7 @@ class RegisterEventWizardView(SessionWizardView):
 
         event = Event.objects.get(id=self.kwargs["pk"])
         cleaned_data_email = self.get_cleaned_data_for_step("email")
-        cleaned_data_contact_details = self.get_cleaned_data_for_step("cotact_details")
+        cleaned_data_contact_details = self.get_cleaned_data_for_step("contact_details")
         cleaned_data_guardians = self.get_cleaned_data_for_step("guardians")
         cleaned_data_register = self.get_cleaned_data_for_step("register")
         cleaned_data_additional = self.get_cleaned_data_for_step("additional")
@@ -517,33 +517,26 @@ class RegisterEventWizardView(SessionWizardView):
             )
             user.set_password(cleaned_data_register["password1"])
             user.save()
-
-            # Create Person
-            person = Person.objects.create(
-                user=user,
-                email=cleaned_data_contact_details["email"],
-                short_name=cleaned_data_contact_details["short_name"],
-                first_name=cleaned_data_contact_details["first_name"],
-                additional_name=cleaned_data_contact_details["additional_name"],
-                last_name=cleaned_data_contact_details["last_name"],
-                street=cleaned_data_contact_details["street"],
-                housenumber=cleaned_data_contact_details["housenumber"],
-                postal_code=cleaned_data_contact_details["postal_code"],
-                place=cleaned_data_contact_details["place"],
-                mobile_number=cleaned_data_contact_details["mobile_number"],
-                phone_number=cleaned_data_contact_details["phone_number"],
-                date_of_birth=cleaned_data_contact_details["date_of_birth"],
-                place_of_birth=cleaned_data_contact_details["place_of_birth"],
-                sex=cleaned_data_contact_details["sex"],
-                photo=cleaned_data_contact_details["photo"],
-                description=cleaned_data_contact_details["description"],
-            )
+        else:
+            user = self.request.user
+
+        person = Person.objects.get_or_create(
+            user=user,
+            defaults={
+                "email": cleaned_data_contact_details["email"],
+                "first_name": cleaned_data_contact_details["first_name"],
+                "additional_name": cleaned_data_contact_details["additional_name"],
+                "last_name": cleaned_data_contact_details["last_name"],
+                "phone_number": cleaned_data_contact_details["phone_number"],
+                "place_of_birth": cleaned_data_contact_details["place_of_birth"],
+            }
+        )
 
         if (
             "school" in cleaned_data_contact_details
             or "school_class" in cleaned_data_contact_details
             or "school_place" in cleaned_data_contact_details
-            or "mobile" in cleaned_data_contact_details
+            or "mobile_number" in cleaned_data_contact_details
             or "sex" in cleaned_data_contact_details
             or "date_of_birth" in cleaned_data_contact_details
         ):
@@ -567,6 +560,7 @@ class RegisterEventWizardView(SessionWizardView):
             person.street = cleaned_data_contact_details["street"]
             person.postal_code = cleaned_data_contact_details["postal_code"]
             person.place = cleaned_data_contact_details["place"]
+            person.housenumber = cleaned_data_contact_details["housenumber"],
 
             person.save()
 
@@ -615,10 +609,13 @@ class RegisterEventWizardView(SessionWizardView):
         registration.save()
 
         if cleaned_data_financial["voucher_code"] != "":
-            voucher = Voucher.objects.get(code=cleaned_data_financial["voucher_code"])
-            if voucher:
+            vouchers = Voucher.objects.filter(person=person, event=event, used=False, code=cleaned_data_financial["voucher_code"])
+            if vouchers:
+                voucher = vouchers.first()
                 registration.voucher = voucher
+                voucher.used = True
                 with reversion.create_revision():
+                    voucher.save()
                     registration.save()
             else:
                 messages.error(self.request, _("You entered an invalid voucher code!"))