diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,8 +1,14 @@
 * Hackage: (http://hackage.haskell.org/package/hArduino)
 * GitHub:  (http://leventerkok.github.com/hArduino)
 
-* Latest Hackage released version: 0.5
+* Latest Hackage released version: 0.6
 
+### Version 0.6, 2013-03-08
+
+ * Make hArduino Windows friendly by removing dependence
+   on the unix package. Thanks to Andriy Drozdyuk for pointing
+   out the Windows compilation issue. (Tested on Windows XP.)
+
 ### Version 0.5, 2013-03-07
  
  * New hardware components supported:
@@ -27,7 +33,7 @@
      * time: Measure the time taken by an Arduino action
      * timeOut: Run an action only for the given-time-out
 
-### Version 0.4, 2013-02-05
+### Version 0.4, 2013-03-05
 
  * Bugfix: Remove spurious extra call to user program
  * Rework pin assignment logic, making use of analog/digital pins much more clearer.
diff --git a/System/Hardware/Arduino/Comm.hs b/System/Hardware/Arduino/Comm.hs
--- a/System/Hardware/Arduino/Comm.hs
+++ b/System/Hardware/Arduino/Comm.hs
@@ -9,19 +9,19 @@
 -- Basic serial communication routines
 -------------------------------------------------------------------------------
 
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE NamedFieldPuns      #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 module System.Hardware.Arduino.Comm where
 
 import Control.Monad        (when, forever)
-import Control.Concurrent   (MVar, myThreadId, ThreadId, throwTo, newChan, newMVar, newEmptyMVar, putMVar, writeChan, readChan, forkIO, modifyMVar_, tryTakeMVar, killThread)
+import Control.Concurrent   (MVar, ThreadId, newChan, newMVar, newEmptyMVar, putMVar, writeChan, readChan, forkIO, modifyMVar_, tryTakeMVar, killThread)
 import Control.Exception    (tryJust, AsyncException(UserInterrupt), handle, SomeException)
 import Control.Monad.State  (runStateT, gets, liftIO, modify)
 import Data.Bits            (testBit, (.&.))
 import Data.List            (intercalate, isInfixOf)
 import Data.Maybe           (listToMaybe)
 import Data.Word            (Word8)
-import System.Posix.Signals (installHandler, keyboardSignal, Handler(Catch))
 import System.Timeout       (timeout)
 import System.IO            (stderr, hPutStrLn)
 
@@ -51,9 +51,7 @@
             -> Arduino () -- ^ The Haskell controller program to run
             -> IO ()
 withArduino verbose fp program =
-        do tid <- myThreadId
-           _ <- installHandler keyboardSignal (Catch (throwTo tid UserInterrupt)) Nothing
-           debugger <- mkDebugPrinter verbose
+        do debugger <- mkDebugPrinter verbose
            debugger $ "Accessing arduino located at: " ++ show fp
            listenerTid <- newEmptyMVar
            let Arduino controller = do initOK <- initialize listenerTid
diff --git a/System/Hardware/Arduino/SamplePrograms/Distance.hs b/System/Hardware/Arduino/SamplePrograms/Distance.hs
--- a/System/Hardware/Arduino/SamplePrograms/Distance.hs
+++ b/System/Hardware/Arduino/SamplePrograms/Distance.hs
@@ -44,7 +44,7 @@
 -- Wiring: Simply connect VCC and GND of HC-SR04 to Arduino as usual. The @Echo@ line on the sensor is connected
 -- to Arduino pin 2. The @Trig@ line is connected on the board to the @Echo@ line, i.e., they both connect to the
 -- same pin on the Arduino. We also have a led on pin 13 that we will light-up
--- if the distance detected is less than 2 centimeters, indicating an impending crash!
+-- if the distance detected is less than 5 centimeters, indicating an impending crash!
 --
 --  <<http://github.com/LeventErkok/hArduino/raw/master/System/Hardware/Arduino/SamplePrograms/Schematics/Distance.png>>
 distance :: IO ()
@@ -59,6 +59,6 @@
                       Nothing -> liftIO $ putStrLn "Distance: No measurement received."
                       Just d  -> do let c = microSecondsToCentimeters d
                                     liftIO $ putStrLn $ "Distance: " ++ showGFloat (Just 2) c " centimeters."
-                                    digitalWrite led (c < 2)
+                                    digitalWrite led (c < 5)
        update = forever $ do measure
                              delay 1000
diff --git a/hArduino.cabal b/hArduino.cabal
--- a/hArduino.cabal
+++ b/hArduino.cabal
@@ -1,5 +1,5 @@
 Name:          hArduino
-Version:       0.5
+Version:       0.6
 Category:      Hardware
 Synopsis:      Control your Arduino board from Haskell.
 Description:   hArduino library allows Haskell programs to control Arduino boards and
@@ -25,26 +25,26 @@
     location:   git://github.com/LeventErkok/hArduino.git
 
 Library
-  default-language: Haskell2010
-  ghc-options     : -Wall
-  Build-depends   : base  >= 4 && < 5, serialport >= 0.4.5, bytestring, mtl, unix, containers, time
-  Exposed-modules : System.Hardware.Arduino
-                  , System.Hardware.Arduino.Parts
-                  , System.Hardware.Arduino.Parts.LCD
-                  , System.Hardware.Arduino.Parts.ShiftRegisters
-                  , System.Hardware.Arduino.Parts.SevenSegmentCodes
-                  , System.Hardware.Arduino.Parts.Servo
-                  , System.Hardware.Arduino.SamplePrograms.Analog
-                  , System.Hardware.Arduino.SamplePrograms.Blink
-                  , System.Hardware.Arduino.SamplePrograms.Button
-                  , System.Hardware.Arduino.SamplePrograms.Counter
-                  , System.Hardware.Arduino.SamplePrograms.Distance
-                  , System.Hardware.Arduino.SamplePrograms.LCD
-                  , System.Hardware.Arduino.SamplePrograms.Pulse
-                  , System.Hardware.Arduino.SamplePrograms.SevenSegment
-                  , System.Hardware.Arduino.SamplePrograms.Servo
-  Other-modules   : System.Hardware.Arduino.Comm
-                  , System.Hardware.Arduino.Data
-                  , System.Hardware.Arduino.Firmata
-                  , System.Hardware.Arduino.Protocol
-                  , System.Hardware.Arduino.Utils
+  default-language  : Haskell2010
+  ghc-options       : -Wall
+  Build-depends     : base  >= 4 && < 5, serialport >= 0.4.5, bytestring, mtl, containers, time
+  Exposed-modules   : System.Hardware.Arduino
+                    , System.Hardware.Arduino.Parts
+                    , System.Hardware.Arduino.Parts.LCD
+                    , System.Hardware.Arduino.Parts.ShiftRegisters
+                    , System.Hardware.Arduino.Parts.SevenSegmentCodes
+                    , System.Hardware.Arduino.Parts.Servo
+                    , System.Hardware.Arduino.SamplePrograms.Analog
+                    , System.Hardware.Arduino.SamplePrograms.Blink
+                    , System.Hardware.Arduino.SamplePrograms.Button
+                    , System.Hardware.Arduino.SamplePrograms.Counter
+                    , System.Hardware.Arduino.SamplePrograms.Distance
+                    , System.Hardware.Arduino.SamplePrograms.LCD
+                    , System.Hardware.Arduino.SamplePrograms.Pulse
+                    , System.Hardware.Arduino.SamplePrograms.SevenSegment
+                    , System.Hardware.Arduino.SamplePrograms.Servo
+  Other-modules     : System.Hardware.Arduino.Comm
+                    , System.Hardware.Arduino.Data
+                    , System.Hardware.Arduino.Firmata
+                    , System.Hardware.Arduino.Protocol
+                    , System.Hardware.Arduino.Utils
