diff --git a/lib/modem.js b/lib/modem.js
index 16a1d84..31b4e83 100644
--- a/lib/modem.js
+++ b/lib/modem.js
@@ -102,14 +102,17 @@ async function readIMSI() {
             imsi = data.toString().trim();
             logger.info(`IMSI: ${imsi}`);
         }
+
         mutex.releaseLockWaitForOK();
     });
 
     port.pipe(parserReadIMSI);
     await writeToPortAndWaitForOK('AT+CIMI\r');
-    await mutex.setLockWaitForOK();
-    mutex.releaseLockWaitForOK();
+
+    // selesai hanya jika lock sudah terbuka oleh parser
+    mutex.setLockWaitForOK();
     port.unpipe(parserReadIMSI);
+    mutex.releaseLockWaitForCommand();
 }
 
 async function querySignalStrength() {