diff --git a/CHANGELOG.md b/CHANGELOG.md
index bf329aae7445ec7907a5cfeab4da2768abb152eb..a9115a050d82deec8df15dd9579a0aa188b385eb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
 > 02/2025
 
 * Ajout de boutons dans tinyMCE permettant de déplacer le curseur en début ou fin d'éditeur.
+* Les traductions sont maintenant "libérées" au bout de 45 secondes.
 
 > 01/2025
 
diff --git a/application/assets/js/transcription.js b/application/assets/js/transcription.js
index c5e45528c2bb33fc062c9f1ed09441901ba0dc1c..ef318532aa22ac5891073ba3f78acdf0261abaa7 100644
--- a/application/assets/js/transcription.js
+++ b/application/assets/js/transcription.js
@@ -2,8 +2,7 @@
 import introJs from 'intro.js'
 import MediaViewer from './media-viewer';
 
-// normally every 2 minutes but to avoid any time problem let's put a bit less
-const updateLogTimeout = 100000
+const updateLogTimeout = 15000
 const viewerClass = '.media-viewer';
 const viewer = document.querySelector(viewerClass)
 const mediaUrl = viewer.getAttribute('data-url').trim()
diff --git a/application/src/Service/TranscriptionManager.php b/application/src/Service/TranscriptionManager.php
index 43be88fbbc0c57d9848f688646fe5b8d1f712e16..a4a4f9b1a3dac617da69491046e6b288c607a13e 100644
--- a/application/src/Service/TranscriptionManager.php
+++ b/application/src/Service/TranscriptionManager.php
@@ -63,9 +63,11 @@ class TranscriptionManager
 
     public function isLocked(TranscriptionLog $log)
     {
-        $diff = $log->getCreatedAt()->diff(new \DateTime());
+        $now = new \DateTime();
+        $logDate = $log->getCreatedAt();
+        $diff = $now->getTimestamp() - $logDate->getTimestamp();
 
-        return $diff->i <= 2;
+        return $diff <= 45;
     }
 
     public function isLockedByCurrentUser(Transcription $transcription, $lockLog)