Hi,<br><br>I&#39;ve written the programme below. <br><br>The lircLoop should never terminate. Unfortunately it does. Worse, no error messages are generated.<br>Not even the final line &quot;Closing down&quot; is printed.<br>

<br>How is this possible?<br><br>Thanks for your help.<br><br>import Hmpf.Tree as T<br>import Control.Concurrent hiding (forkIO)<br>import Control.Exception<br>import Prelude hiding (catch)<br>import Hmpf.Fork<br>import System.Log.Logger<br>

import System.Log.Handler.Simple<br>import System.Log.Handler<br>import System.IO<br>import Network.MPD<br>import Control.Monad.Trans (liftIO)<br><br><br><br>main :: IO ()<br>main = do<br>&nbsp;initializeLogging<br>&nbsp;lirc &lt;- newChan<br>

&nbsp;lcd &lt;- newChan<br>&nbsp;startLirc device lirc<br>&nbsp;startLCD &quot;localhost&quot; 13666 lcd<br>&nbsp;forkIO logger $<br>&nbsp; mpdLoop lcd mpd<br>&nbsp;catch (lircLoop lirc lcd mpd)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (\e -&gt; errorM logger &quot;Lirc loop died&quot; &gt;&gt; (errorM logger (show e)))<br>

&nbsp;putStrLn &quot;Closing down&quot;<br>