diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+v1.1.1.1:
+* Dependency update for HSE 1.17, transformers 0.5
+* Trim tested-with, I no longer have a working copy of old GHCs
+
+v1.1.1:
+* Fix some bugs in qualified operator handling
+
 v1.1:
 * Drop support for GHC 7.0 and 7.2 (actually already lost with HSE 1.16)
 * Add support for GHC 7.10.1
@@ -7,7 +14,8 @@
 * Dependency update for QuickCheck 2.9
 
 v1.0.4.8:
-* Dependency update for HSE 1.16 and transformers 0.5
+* Dependency update for HSE 1.16
+* Fixing support for transformers 0.4
 
 v1.0.4.7:
 * Dependency update for HSE 1.15 and transformers 0.4
diff --git a/Plugin/Pl/Parser.hs b/Plugin/Pl/Parser.hs
--- a/Plugin/Pl/Parser.hs
+++ b/Plugin/Pl/Parser.hs
@@ -12,7 +12,7 @@
 nameString (HSE.Symbol s) = (Inf, s)
 
 qnameString :: HSE.QName -> (Fixity, String)
-qnameString (HSE.Qual m n) = fmap (HSE.prettyPrint m ++) (nameString n)
+qnameString (HSE.Qual m n) = fmap ((HSE.prettyPrint m ++ ".") ++) (nameString n)
 qnameString (HSE.UnQual n) = nameString n
 qnameString (HSE.Special sc) = case sc of
   HSE.UnitCon -> (Pref, "()")
@@ -68,9 +68,9 @@
 
 hseToDecl :: HSE.Decl -> Decl
 hseToDecl dec = case dec of
-  HSE.PatBind _ (HSE.PVar n) (HSE.UnGuardedRhs e) (HSE.BDecls []) ->
+  HSE.PatBind _ (HSE.PVar n) (HSE.UnGuardedRhs e) Nothing ->
     Define (snd (nameString n)) (hseToExpr e)
-  HSE.FunBind [HSE.Match _ n ps Nothing (HSE.UnGuardedRhs e) (HSE.BDecls [])] ->
+  HSE.FunBind [HSE.Match _ n ps Nothing (HSE.UnGuardedRhs e) Nothing] ->
     Define (snd (nameString n)) (foldr (\p x -> Lambda (hseToPattern p) x) (hseToExpr e) ps)
   _ -> todo dec
 
diff --git a/Plugin/Pl/PrettyPrinter.hs b/Plugin/Pl/PrettyPrinter.hs
--- a/Plugin/Pl/PrettyPrinter.hs
+++ b/Plugin/Pl/PrettyPrinter.hs
@@ -127,7 +127,17 @@
   prettyPrecPattern 6 p1 . (':':) . prettyPrecPattern 5 p2
   
 isOperator :: String -> Bool
-isOperator s = s /= "()" && all (\c -> isSymbol c || isPunctuation c) s
+isOperator s =
+  case break (== '.') s of
+    (_, "") -> isUnqualOp s
+    (before, _dot : rest)
+      | isUnqualOp before -> isUnqualOp rest
+      | isModule before -> isOperator rest
+      | otherwise -> False
+  where
+    isModule "" = False
+    isModule (c : cs) = isUpper c && all (\c -> isAlphaNum c || c `elem` ['\'', '_']) cs
+    isUnqualOp s = s /= "()" && all (\c -> isSymbol c || isPunctuation c) s
 
 getInfName :: String -> String
 getInfName str = if isOperator str then str else "`"++str++"`"
diff --git a/Plugin/Pl/Rules.hs b/Plugin/Pl/Rules.hs
--- a/Plugin/Pl/Rules.hs
+++ b/Plugin/Pl/Rules.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE PatternGuards #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 --
 -- | This marvellous module contributed by Thomas J\344ger
diff --git a/Plugin/Pl/Transform.hs b/Plugin/Pl/Transform.hs
--- a/Plugin/Pl/Transform.hs
+++ b/Plugin/Pl/Transform.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE PatternGuards #-}
 module Plugin.Pl.Transform (
     transform,
   ) where
diff --git a/pointfree.cabal b/pointfree.cabal
--- a/pointfree.cabal
+++ b/pointfree.cabal
@@ -1,7 +1,7 @@
 Cabal-Version: >= 1.8
 
 Name:     pointfree
-Version:  1.1
+Version:  1.1.1.1
 Category: Tool
 Synopsis: Tool for refactoring expressions into pointfree form
 
@@ -17,40 +17,36 @@
 Extra-source-files: ChangeLog README test/Test.hs
 
 Build-type:  Simple
-Tested-with: GHC == 7.4.2, GHC == 7.6.2, GHC == 7.8.2, GHC == 7.10.1
+Tested-with: GHC == 7.10.2
 
 Source-repository head
   type:     git
   location: git://github.com/benmachine/pointfree.git
 
-library
-    Exposed-modules: Pointfree
-    Build-depends: base >= 4.5 && < 4.9,
-                   array >= 0.3 && < 0.6,
-                   containers >= 0.4 && < 0.6,
-                   haskell-src-exts == 1.16.*,
-                   transformers < 0.5
-    Other-modules: Plugin.Pl.Common
-                   Plugin.Pl.Parser
-                   Plugin.Pl.PrettyPrinter
-                   Plugin.Pl.Optimize
-                   Plugin.Pl.Rules
-                   Plugin.Pl.Transform
-    GHC-options: -Wall
+Library
+  Exposed-modules: Pointfree
 
+  Build-depends: base >= 4.5 && < 4.9,
+                 array >= 0.3 && < 0.6,
+                 containers >= 0.4 && < 0.6,
+                 haskell-src-exts == 1.17.*,
+                 transformers < 0.6
+  Other-modules: Plugin.Pl.Common
+                 Plugin.Pl.Parser
+                 Plugin.Pl.PrettyPrinter
+                 Plugin.Pl.Optimize
+                 Plugin.Pl.Rules
+                 Plugin.Pl.Transform
+  GHC-options: -W
+
 Executable pointfree
   Main-is:       Main.hs
-  GHC-options:   -Wall
-  Extensions:    ExistentialQuantification,
-                 FlexibleInstances,
-                 ImplicitParams,
-                 PatternGuards,
-                 ScopedTypeVariables
+  GHC-options:   -W
   Build-depends: base >= 4.3 && < 4.9,
                  array >= 0.3 && < 0.6,
                  containers >= 0.4 && < 0.6,
-                 haskell-src-exts == 1.16.*,
-                 transformers < 0.5
+                 haskell-src-exts == 1.17.*,
+                 transformers < 0.6
   Other-modules: Plugin.Pl.Common
                  Plugin.Pl.Parser
                  Plugin.Pl.PrettyPrinter
@@ -68,17 +64,10 @@
     array >= 0.3 && < 0.6,
     base < 5,
     containers >= 0.3 && < 0.6,
-    haskell-src-exts == 1.16.*,
-    HUnit >= 1.1 && < 1.3,
+    haskell-src-exts == 1.17.*,
+    HUnit >= 1.1 && < 1.4,
     QuickCheck >= 2.1 && < 2.9,
-    transformers < 0.5
-
-  Extensions:
-    ExistentialQuantification
-    FlexibleInstances
-    ImplicitParams
-    PatternGuards
-    ScopedTypeVariables
+    transformers < 0.6
 
-  GHC-Options:    -Wall
+  GHC-Options:    -W
   Hs-source-dirs: . test
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -9,7 +9,6 @@
 import Plugin.Pl.PrettyPrinter
 import Plugin.Pl.Optimize
 
-import Data.List ((\\))
 import Data.Char (isSpace)
 
 import System.IO (hSetBuffering, stdout, BufferMode(NoBuffering))
@@ -185,7 +184,9 @@
   unitTest "(concat .) . map" ["(=<<)"],
   unitTest "let f ((a,b),(c,d)) = a + b + c + d in f ((1,2),(3,4))" ["10"],
   unitTest "let x = const 3 y; y = const 4 x in x + y" ["7"], -- yay!
-  unitTest "(\\n -> (return 0) ± (return $ sqrt n))" ["(return 0 ±) . return . sqrt"]
+  unitTest "(\\n -> (return 0) ± (return $ sqrt n))" ["(return 0 ±) . return . sqrt"],
+  unitTest "\\b -> (\\c -> ((Control.Monad.>>=) c) (\\g -> Control.Applicative.pure (b g)))"
+    ["flip (Control.Monad.>>=) . (Control.Applicative.pure .)"]
   ]
 
 main :: IO ()
