diff --git a/src/QBar/BlockHelper.hs b/src/QBar/BlockHelper.hs
index 0fda97966541fd31c1783ce5ea11cc9902b6d9f9..2109db08d7eae00bbcf158a2e4413bf0e348879a 100644
--- a/src/QBar/BlockHelper.hs
+++ b/src/QBar/BlockHelper.hs
@@ -89,7 +89,7 @@ data SignalBlockConfiguration c p = SignalBlockConfiguration {
   signalThread :: Maybe (c -> (p -> IO ()) -> BarIO ()),
   signalBlock :: c -> SignalBlock p,
   interval :: Maybe Interval,
-  finalize :: c -> IO ()
+  finalize :: c -> BarIO ()
 }
 
 runSignalBlockConfiguration :: forall c p. SignalBlockConfiguration c p -> Block
@@ -118,7 +118,8 @@ runSignalBlockConfiguration SignalBlockConfiguration{initialize, signalThread, s
       liftIO $ do
         cancel userTask
         cancel intervalTask
-        finalize context
+
+      liftBarIO $ finalize context
 
       exitBlock