diff --git a/src/QBar/Util.hs b/src/QBar/Util.hs
index 0ca48dbdd19cd53fa32039956f6a13e77861e71c..8b94dda69867da4a208f0f48a178925297e179cf 100644
--- a/src/QBar/Util.hs
+++ b/src/QBar/Util.hs
@@ -7,15 +7,8 @@ import Pipes
 import System.Random
 
 -- Pipe that signals an 'Event' after every value that passes through
-signalPipe :: MonadIO m => Event.Event -> Pipe a a m r
-signalPipe event = signalPipe'
-  where
-    signalPipe' :: MonadIO m => Pipe a a m r
-    signalPipe' = do
-      value <- await
-      yield value
-      liftIO $ Event.signal event
-      signalPipe'
+signalEventPipe :: MonadIO m => Event.Event -> Pipe a a m r
+signalEventPipe event = forever $ (yield =<< await) >> liftIO (Event.signal event)
 
 randomIdentifier :: MonadIO m => m Text
 randomIdentifier = liftIO $ T.pack <$> replicateM 8 randomCharacter