diff --git a/Language/Haskell/GhcImportedFrom.hs b/Language/Haskell/GhcImportedFrom.hs
--- a/Language/Haskell/GhcImportedFrom.hs
+++ b/Language/Haskell/GhcImportedFrom.hs
@@ -50,6 +50,7 @@
 
 import Control.Applicative
 import Control.Monad
+import Data.Char (isAlpha)
 import Data.List
 import Data.Maybe
 import Data.Typeable()
@@ -991,9 +992,19 @@
 
     qualifyName :: [QualifiedName] -> Symbol -> QualifiedName
     qualifyName qualifiedNames name
-        = case filter (postfixMatch name) qualifiedNames of
+        -- = case filter (postfixMatch name) qualifiedNames of
+        = case filter (name `f`) qualifiedNames of
             [match]     -> match
-            _           -> error $ "Could not qualify " ++ name ++ " from these exports: " ++ show qualifiedNames
+            m           -> error $ "Could not qualify " ++ name ++ " from these exports: " ++ show qualifiedNames ++ "\n    matches: " ++ show m
+
+        -- Time for some stringly typed rubbish. The previous test used
+        -- postfixMatch but this failed on an import that had "hiding (lines, unlines)" since
+        -- both lines and unlines matched. Prepending a dot doesn't work due to things like ".=" from
+        -- Control.Lens. So we manually check that the suffix matches, that the next symbol is a dot,
+        -- and then an alpha character, which hopefully is the end of a module name. Such a mess.
+        where f n qn = if length qn - length n - 2 >= 0
+                            then n `isSuffixOf` qn && isAlpha (qn !! (length qn - length n - 2)) && (qn !! (length qn - length n - 1)) == '.'
+                            else error $ "Internal error: trying to check if \"" ++ n ++ "\" is a match for \"" ++ qn ++ "\""
 
 refineExportsIt :: String -> [ModuleExports] -> [ModuleExports]
 refineExportsIt symbol exports = map (\e -> e { qualifiedExports = f symbol e }) exports
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+2016-04-05 v0.3.0.4
+
+* Bugfix: upper bound on pipes-transduce to fix a build error.
+
 2016-04-04 v0.3.0.3
 
 * Bugfix: was parsing stderr instead of stdout for some 'stack path' commands.
diff --git a/ghc-imported-from.cabal b/ghc-imported-from.cabal
--- a/ghc-imported-from.cabal
+++ b/ghc-imported-from.cabal
@@ -1,5 +1,5 @@
 name:                ghc-imported-from
-version:             0.3.0.3
+version:             0.3.0.4
 synopsis:            Find the Haddock documentation for a symbol.
 description:         Given a Haskell module and symbol, determine the URL to the Haddock documentation
                      for that symbol.
@@ -47,6 +47,7 @@
                  , hspec
                  , hspec-discover
                  , exceptions
+                 , pipes-transduce < 0.3.4.0
     if impl(ghc < 7.7)
       Build-Depends:  Cabal >= 1.10 && < 1.17
     else
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -6,5 +6,5 @@
 - conceit-0.4.0.0
 - pipes-text-0.0.1.0
 - process-streaming-0.9.1.0
-- pipes-transduce-0.3.4.0
-resolver: lts-5.10
+- pipes-transduce-0.3.3.0
+resolver: lts-5.11
