diff --git a/libraries/SD/src/sd_diskio.cpp b/libraries/SD/src/sd_diskio.cpp
index 497e27d326c..40d6ede9f81 100644
--- a/libraries/SD/src/sd_diskio.cpp
+++ b/libraries/SD/src/sd_diskio.cpp
@@ -671,8 +671,10 @@ uint8_t sdcard_uninit(uint8_t pdrv) {
   if (pdrv >= FF_VOLUMES || card == NULL) {
     return 1;
   }
-  AcquireSPI lock(card);
-  sdTransaction(pdrv, GO_IDLE_STATE, 0, NULL);
+  {
+    AcquireSPI lock(card);
+    sdTransaction(pdrv, GO_IDLE_STATE, 0, NULL);
+  }  // lock is destructed here
   ff_diskio_register(pdrv, NULL);
   s_cards[pdrv] = NULL;
   esp_err_t err = ESP_OK;