diff --git a/ghc/lib/ghc/IOBase.lhs b/ghc/lib/ghc/IOBase.lhs
index 807dba22a84a85205fde1a89c5cc7eee9befd2cf..b9a9fca980413ac632b3fc52e499f2179f19f768 100644
--- a/ghc/lib/ghc/IOBase.lhs
+++ b/ghc/lib/ghc/IOBase.lhs
@@ -186,8 +186,8 @@ isPermissionError _			         = False
 isDoesNotExistError (IOError _ NoSuchThing _) = True
 isDoesNotExistError _                         = False
 
-isUserError (IOError _ UserError s) = Just s
-isUserError _		            = Nothing
+isUserError (IOError _ UserError _) = True
+isUserError _		            = False
 \end{code}
 
 Showing @IOError@s
diff --git a/ghc/lib/required/IO.lhs b/ghc/lib/required/IO.lhs
index ef97220450bb745cb935355a6f8e2e453efef78c..8e74a02a39285dac5696a1199ec098be6bc5fbc0 100644
--- a/ghc/lib/required/IO.lhs
+++ b/ghc/lib/required/IO.lhs
@@ -94,7 +94,7 @@ hWaitForInput         :: Handle -> Int -> IO Bool
 -- isFullError           :: IOError -> Bool
 -- isIllegalOperation    :: IOError -> Bool
 -- isPermissionError     :: IOError -> Bool
--- isUserError           :: IOError -> Maybe String
+-- isUserError           :: IOError -> Bool
 --IOHandle:openFile              :: FilePath -> IOMode -> IO Handle
 --IOHandle:stdin, stdout, stderr :: Handle
 \end{code}