diff --git a/Language/Haskell/HsColour/Anchors.hs b/Language/Haskell/HsColour/Anchors.hs
--- a/Language/Haskell/HsColour/Anchors.hs
+++ b/Language/Haskell/HsColour/Anchors.hs
@@ -42,6 +42,7 @@
                 || isURIFragmentValid x
                 || isLower x
                 || isUpper x = [x]
+                | ord x >= 256 = [x] -- not correct, but better than nothing
                 | otherwise  = ['%',hexHi (ord x), hexLo (ord x)]
           hexHi d = intToDigit (d`div`16)
           hexLo d = intToDigit (d`mod`16)
diff --git a/Language/Haskell/HsColour/Colourise.hs b/Language/Haskell/HsColour/Colourise.hs
--- a/Language/Haskell/HsColour/Colourise.hs
+++ b/Language/Haskell/HsColour/Colourise.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE ScopedTypeVariables #-}
 module Language.Haskell.HsColour.Colourise
   ( module Language.Haskell.HsColour.ColourHighlight
   , ColourPrefs(..)
@@ -12,6 +13,8 @@
 import System.IO (hPutStrLn,stderr)
 import System.Environment (getEnv)
 import Data.List
+import Prelude hiding (catch)
+import Control.Exception.Base (catch)
 
 -- | Colour preferences.
 data ColourPrefs = ColourPrefs
@@ -54,11 +57,11 @@
 readColourPrefs = catch
   (do val <- readFile ".hscolour"
       parseColourPrefs ".hscolour" val)
-  (\_-> catch
+  (\ (_::IOError)-> catch
     (do home <- getEnv "HOME"
         val <- readFile (home++"/.hscolour")
         parseColourPrefs (home++"/.hscolour") val)
-    (\_-> return defaultColourPrefs))
+    (\ (_::IOError)-> return defaultColourPrefs))
 
 -- | Convert token classification to colour highlights.
 colourise :: ColourPrefs -> TokenType -> [Highlight]
diff --git a/hscolour.cabal b/hscolour.cabal
--- a/hscolour.cabal
+++ b/hscolour.cabal
@@ -1,5 +1,5 @@
 Name: hscolour
-Version: 1.20.2
+Version: 1.20.3
 Copyright: 2003-2012 Malcolm Wallace; 2006 Bjorn Bringert
 Maintainer: Malcolm Wallace
 Author: Malcolm Wallace
