diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java
index d8d18d10a35f0af062a13f6163c2322e432c8cef..35e7a7419b1238320dc624ea09ef9c22011d3d63 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java
@@ -36,6 +36,7 @@ import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.CommandExecutedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
 import de.ozgcloud.command.CommandRevokeFailedEvent;
+import de.ozgcloud.command.CommandRevokedEvent;
 import de.ozgcloud.command.RevokeCommandEvent;
 import de.ozgcloud.vorgang.command.CommandService;
 import de.ozgcloud.vorgang.command.Order;
@@ -132,6 +133,7 @@ public class VorgangEventListener {
 		var command = event.getSource();
 		try {
 			vorgangService.unlockVorgang(command);
+			publisher.publishEvent(new CommandRevokedEvent(command));
 		} catch (RuntimeException e) {
 			LOG.error("Error unlocking vorgang.", e);
 			publisher.publishEvent(new CommandRevokeFailedEvent(command.getId(), e.getMessage()));
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java
index 1777bbfa47376f46a96918f6ef76721d0e68b0b3..95d602135383fdb2b3b5b777cf145a0ed4cd7922 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java
@@ -47,6 +47,7 @@ import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandExecutedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
 import de.ozgcloud.command.CommandRevokeFailedEvent;
+import de.ozgcloud.command.CommandRevokedEvent;
 import de.ozgcloud.command.RevokeCommandEvent;
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory;
@@ -268,7 +269,9 @@ class VorgangEventListenerTest {
 	class TestRevokeLockVorgang {
 
 		@Captor
-		private ArgumentCaptor<CommandRevokeFailedEvent> eventCaptor;
+		private ArgumentCaptor<CommandRevokedEvent> commandRevokedEventCaptor;
+		@Captor
+		private ArgumentCaptor<CommandRevokeFailedEvent> commandRevokeFailedEventCaptor;
 
 		@Test
 		void shouldCallUnlockVorgang() {
@@ -279,6 +282,16 @@ class VorgangEventListenerTest {
 			verify(service).unlockVorgang(command);
 		}
 
+		@Test
+		void shouldPublishCommandRevokedEvent() {
+			var command = CommandTestFactory.create();
+
+			listener.onRevokeLockVorgang(new RevokeCommandEvent(command));
+
+			verify(publisher).publishEvent(commandRevokedEventCaptor.capture());
+			assertThat(commandRevokedEventCaptor.getValue().getSource()).isSameAs(command);
+		}
+
 		@Test
 		void shouldPublishCommandFailedEvent() {
 			var command = CommandTestFactory.create();
@@ -287,8 +300,8 @@ class VorgangEventListenerTest {
 
 			listener.onRevokeLockVorgang(new RevokeCommandEvent(command));
 
-			verify(publisher).publishEvent(eventCaptor.capture());
-			assertThat(eventCaptor.getValue()).satisfies(event -> {
+			verify(publisher).publishEvent(commandRevokeFailedEventCaptor.capture());
+			assertThat(commandRevokeFailedEventCaptor.getValue()).satisfies(event -> {
 				assertThat(event.getSource()).isEqualTo(CommandTestFactory.ID);
 				assertThat(event.getErrorMessage()).isEqualTo(errorMessage);
 			});