diff --git a/src/ariane.sv b/src/ariane.sv
index 69c045bc65c7af6243e69776079e5ba3a8a4b76e..01bc663a81edd509275b55fb1bab8ea38cb25f80 100644
--- a/src/ariane.sv
+++ b/src/ariane.sv
@@ -103,6 +103,8 @@ module ariane import ariane_pkg::*; #(
   logic                     has_mem_access_is_verif;
   logic                     has_ctrl_flow_is_icache;
 
+  logic                     store_buffer_empty_verif;
+
   // --------------
   // ISSUE <-> EX
   // --------------
@@ -445,6 +447,7 @@ module ariane import ariane_pkg::*; #(
     .lsu_commit_ready_o     ( lsu_commit_ready_ex_commit  ), // to commit
     .commit_tran_id_i       ( lsu_commit_trans_id         ), // from commit
     .no_st_pending_o        ( no_st_pending_ex            ),
+    .store_buffer_empty_o   ( store_buffer_empty_verif    ),
     // FPU
     .fpu_ready_o            ( fpu_ready_ex_id             ),
     .fpu_valid_i            ( fpu_valid_id_ex             ),
@@ -664,6 +667,9 @@ module ariane import ariane_pkg::*; #(
     // I$
     .icache_miss_i (icache_miss_cache_perf),
 
+    // D$
+    .dcache_wbuffer_empty_i (dcache_commit_wbuffer_empty),
+
     // IF
     .if_has_mem_access_i (has_mem_access_if_verif),
     .if_has_cf_i         (has_ctrl_flow_if_icache),
@@ -677,7 +683,7 @@ module ariane import ariane_pkg::*; #(
     .is_has_cf_i         (has_ctrl_flow_is_icache),
 
     // LSU
-    .no_st_pending_commit_i (no_st_pending_ex),
+    .no_st_pending_commit_i (store_buffer_empty_verif),
 
     // CO
     .commit_instr_i (commit_instr_id_commit),
diff --git a/src/ex_stage.sv b/src/ex_stage.sv
index 402bbb330861b3f4e1fed14736726b49563b6871..c035ad8d6b5a4e09fb264255963a68bb86dffdab 100644
--- a/src/ex_stage.sv
+++ b/src/ex_stage.sv
@@ -71,6 +71,7 @@ module ex_stage import ariane_pkg::*; #(
     output logic                                   lsu_commit_ready_o, // commit queue is ready to accept another commit request
     input  logic [TRANS_ID_BITS-1:0]               commit_tran_id_i,
     output logic                                   no_st_pending_o,
+    output logic                                   store_buffer_empty_o,
     input  logic                                   amo_valid_commit_i,
     // FPU
     output logic                                   fpu_ready_o,      // FU is ready
@@ -277,6 +278,7 @@ module ex_stage import ariane_pkg::*; #(
         .rst_ni,
         .flush_i,
         .no_st_pending_o,
+        .store_buffer_empty_o,
         .fu_data_i             ( lsu_data ),
         .lsu_ready_o,
         .lsu_valid_i,
diff --git a/src/load_store_unit.sv b/src/load_store_unit.sv
index fe2a6859a5da7c9498d29421356457b6b21fc5d6..18791202f291a639869625b3ca48c8c52298dccc 100644
--- a/src/load_store_unit.sv
+++ b/src/load_store_unit.sv
@@ -21,6 +21,7 @@ module load_store_unit import ariane_pkg::*; #(
     input  logic                     rst_ni,
     input  logic                     flush_i,
     output logic                     no_st_pending_o,
+    output logic                     store_buffer_empty_o,
     input  logic                     amo_valid_commit_i,
 
     input  fu_data_t                 fu_data_i,
@@ -196,9 +197,9 @@ module load_store_unit import ariane_pkg::*; #(
         end
     endgenerate
 
-
-   
     logic store_buffer_empty;
+    assign store_buffer_empty_o = store_buffer_empty;
+
     // ------------------
     // Store Unit
     // ------------------
diff --git a/src/verifier.sv b/src/verifier.sv
index 4c2485548af4b00452c75afc371e0400e3331471..7e25d8ae66ffabfd6014b969bb51fb97c2d3adc5 100644
--- a/src/verifier.sv
+++ b/src/verifier.sv
@@ -9,6 +9,9 @@ module verifier #(
   // I$
   input logic                       icache_miss_i,
 
+  // D$
+  input logic                       dcache_wbuffer_empty_i,
+
   // Frontend
   input logic                       if_has_mem_access_i,
   input logic                       if_has_cf_i,
@@ -35,7 +38,7 @@ module verifier #(
 
   // Bus accesses (I$ misses and memory instructions in the pipeline)
   logic                             has_mem_access;
-  assign has_mem_access = if_has_mem_access_i | id_has_mem_access_i | is_has_mem_access_i | (~no_st_pending_commit_i);
+  assign has_mem_access = if_has_mem_access_i | id_has_mem_access_i | is_has_mem_access_i | ~no_st_pending_commit_i | ~dcache_wbuffer_empty_i;
 
   // assign should_lock_icache_o = has_mem_access & icache_miss_i;
   assign should_lock_icache_o = has_mem_access | if_has_cf_i | id_has_cf_i | is_has_cf_i;