diff --git a/locale/de-DE.texts.json b/locale/de-DE.texts.json
index 74f5dd526d1c6a1c1f97b72b7b28954adfac6b09..248b6880ed303c6f250e4b7d78c93c3e2730bbcb 100644
--- a/locale/de-DE.texts.json
+++ b/locale/de-DE.texts.json
@@ -2,6 +2,7 @@
     "becameMember": "Herzlichen Glückwunsch, du hast dich erfolgreich zum Wichteln „{var.currentEventName}“ registriert.\nToll!\n\nWas nun? Nun wird gewartet, bis der Anmeldeschluss kommt. Dann wird gelost und du bekommst hier alle Informationen zu deinem Wichtel.\n\nDu hast einen Fehler gemacht oder etwas vergessen? Kein Problem, mit „ändern“ kannst du deine Angaben bis zum Anmeldeschluss jederzeit überarbeiten. (Achte allerdings darauf, dass alle Änderungen bis Registrierungsschluss abgeschlossen sein müssen, sonst bist du nicht registriert!)\n\nFrohes Hibbeln bis zum Auslosetag!",
     "changedInformation": "Angaben erfolgreich geändert. Du kannst jederzeit mittels „ändern“ die Angaben erneut anpassen.",
     "commandInfo": "\"{command.name}\": {command.info}",
+    "confirmDeregistration": "Bist du sicher, dass du dich vom Wichteln abmelden möchtest?",
     "contactingFailedResponse": "Ich konnte dich nicht erreichen, {contact.nickname}. Hast du Direktnachrichten von Servermitgliedern erlaubt?",
     "contactingTooEarly": "Die Anmeldephase beginnt erst am {date.day}.{date.month}.{date.year} um {date.hour}:{date.minute} Uhr.",
     "contactingRegistration": "Hallo, {contact.nickname}!\nSchön, dass du am 8ter Wichteln teilnehmen willst!\nSchreibe „registrieren“, um den Anmeldevorgang zu starten.",
@@ -11,6 +12,7 @@
     "contactingWhileRegistration": "Du registrierst dich doch gerade!",
     "countrySelectPlaceholder": "Land auswählen",
     "deregistration": "Schade, {contact.nickname}! Ich hab dich vom Wichteln abgemeldet. Wenn du wieder mitmachen möchtest, schreibe „registrieren“.",
+    "deregistrationCancelled": "Puh, nochmal Glück gehabt! Schön dass du dabei bleibst!",
     "goodAfternoon": "Guten Tag, {contact.nickname}!",
     "goodMorning": "Guten Morgen, {contact.nickname}!",
     "goodNight": "Schlaf schön, {contact.nickname}!",
diff --git a/scripts/utility/localisation.ts b/scripts/utility/localisation.ts
index 779788d6d9b8c97aede0a392bb44e309ee4d9308..472eae911605dd3b1a00cde818678ef4a26a04ff 100644
--- a/scripts/utility/localisation.ts
+++ b/scripts/utility/localisation.ts
@@ -35,6 +35,7 @@ interface Texts
     becameMember: TokenString;
     changedInformation: TokenString;
     commandInfo: TokenString;
+    confirmDeregistration: TokenString;
     contactingFailedResponse: TokenString;
     contactingTooEarly: TokenString;
     contactingRegistration: TokenString;
@@ -44,6 +45,7 @@ interface Texts
     contactingWhileRegistration: TokenString;
     countrySelectPlaceholder: TokenString;
     deregistration: TokenString;
+    deregistrationCancelled: TokenString;
     goodAfternoon: TokenString;
     goodMorning: TokenString;
     goodNight: TokenString;
diff --git a/scripts/wichtelbot/endpoint/definitions/state.ts b/scripts/wichtelbot/endpoint/definitions/state.ts
index 3f77b97d21de1a03c9d6dd9c230c4990dd780bc2..a03d151561390eef6323c8e395b1188c34bebd9c 100644
--- a/scripts/wichtelbot/endpoint/definitions/state.ts
+++ b/scripts/wichtelbot/endpoint/definitions/state.ts
@@ -18,7 +18,7 @@ enum State
     InformationFreeText = 'informationFreeText',
     // As member:
     Waiting = 'waiting', // Waiting for becoming a wichtel.
-    ConfirmInformationChange = 'confirmInformationChange',
+    ConfirmDeregistration = 'confirmDeregistration',
     // As wichtel:
     MessageToGiftGiver = 'messageToGiftGiver',
     MessageToGiftTaker = 'messageToGiftTaker',
diff --git a/scripts/wichtelbot/message/handlingDefinition.ts b/scripts/wichtelbot/message/handlingDefinition.ts
index 97c8f827f42d62e61cbed529781b8d6fe23c1adf..88825da9aa6c9779bd70290c4af4717af9167db8 100644
--- a/scripts/wichtelbot/message/handlingDefinition.ts
+++ b/scripts/wichtelbot/message/handlingDefinition.ts
@@ -377,7 +377,7 @@ export default class HandlingDefinition
                 await this.informationModule.completeInformationGathering(message);
             }
         },
-        // Change information:
+        // Waiting for Wichtel assignment:
         {
             state: State.Waiting,
             expectsComponentResult: false,
@@ -388,7 +388,7 @@ export default class HandlingDefinition
                 },
                 {
                     command: Localisation.commands.deregistration,
-                    result: Localisation.texts.deregistration,
+                    result: Localisation.texts.confirmDeregistration,
                 }
             ],
             handlerFunction: async (message: Message, result: TokenString): Promise<void> =>
@@ -398,13 +398,38 @@ export default class HandlingDefinition
                     await this.generalModule.continue(message, State.InformationGiftTypeAsGiver, result, ComponentBuilder.giftTypes);
                     await this.informationModule.sendCurrentGiftTypeAsGiver(message);
                 }
-                else if (result === Localisation.texts.deregistration)
+                else if (result === Localisation.texts.confirmDeregistration)
                 {
-                    await this.generalModule.continue(message, State.New, result);
+                    await this.generalModule.continue(message, State.ConfirmDeregistration, result, ComponentBuilder.yesNo);
+                }
+            }
+        },
+        // Confirm Deregistration:
+        {
+            state: State.ConfirmDeregistration,
+            expectsComponentResult: true,
+            paths: [
+                {
+                    command: Localisation.commands.yes,
+                    result: true
+                },
+                {
+                    command: Localisation.commands.no,
+                    result: false
+                },
+            ],
+            handlerFunction: async (message: Message, result: boolean): Promise<void> =>
+            {
+                if (result)
+                {
+                    await this.generalModule.continue(message, State.New, Localisation.texts.deregistration);
+                }
+                else
+                {
+                    await this.generalModule.continue(message, State.Waiting, Localisation.texts.deregistrationCancelled);
                 }
             }
         }
-        // TODO: Deregister command
     ];
 
     public publicCommands: CommandDefinition[] = [