diff --git a/db/migrations/5.4.13_add_unlock_action.php b/db/migrations/5.4.13_add_unlock_action.php
new file mode 100644
index 0000000000000000000000000000000000000000..d3834a12d4177cf9d1e19985de5e8995c660b9e7
--- /dev/null
+++ b/db/migrations/5.4.13_add_unlock_action.php
@@ -0,0 +1,33 @@
+<?php
+
+final class AddUnlockAction extends Migration
+{
+    public function description()
+    {
+        return 'add an unlock action';
+    }
+
+    public function up()
+    {
+        DBManager::get()->exec("
+            INSERT IGNORE INTO `log_actions`
+            SET `action_id` = MD5('USER_UNLOCK'),
+                `name` = 'USER_UNLOCK',
+                `description` = 'Nutzer wird entsperrt',
+                `info_template` = '%user entsperrt %user(%affected) (%info)',
+                `active` = '1',
+                `expires` = '0'
+        ");
+    }
+
+    public function down()
+    {
+        $actions = ['USER_UNLOCK'];
+
+        DBManager::get()->execute(
+            "DELETE `log_events` FROM `log_events` JOIN `log_actions` USING (`action_id`) WHERE `name` IN (?)",
+            [$actions]
+        );
+        DBManager::get()->execute("DELETE FROM `log_actions` WHERE `name` IN (?)", [$actions]);
+    }
+}
diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 47ad6f63d7850571851847a1f3d5c5e3dfb1362d..780c7fca9addca3a86c72d64c2ff9d0b7f74d2ed 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -231,15 +231,21 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
     protected function cbStudipLog($type)
     {
         if ($type == 'before_store' && !$this->isNew()) {
-            if ($this->isFieldDirty('locked') && $this->isFieldDirty('lock_comment') && (int)$this->locked === 1) {
-                StudipLog::log('USER_LOCK',
-                    $this->user_id,
-                    null,
-                    sprintf(
-                        'Kommentar: %s',
-                        $this->lock_comment
-                    )
-                );
+            if ($this->isFieldDirty('locked') && $this->isFieldDirty('lock_comment')) {
+                if ((int)$this->locked === 1) {
+                    StudipLog::log('USER_LOCK',
+                        $this->user_id,
+                        null,
+                        sprintf(
+                            'Kommentar: %s',
+                            $this->lock_comment
+                        )
+                    );
+                } else {
+                    StudipLog::log('USER_UNLOCK',
+                        $this->user_id
+                    );
+                }
             }
         }
     }