diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,11 +1,2 @@
-#!/usr/bin/env runhaskell
-
--- I usually compile this with "ghc --make -o setup Setup.hs"
-
-import Distribution.Simple(defaultMain)
-main = do putStrLn msg
-          defaultMain
-
-msg = "\nregex-pcre needs to compile against the libpcre libary from http://www.pcre.org/\n\
-      \You might also need to edit the end of the regex-pcre.cabal file to point at\n\
-      \the directories where libpcre 'include' and 'lib' have been installed.\n"
+import Distribution.Simple
+main = defaultMain
diff --git a/Text/Regex/PCRE.hs b/Text/Regex/PCRE.hs
--- a/Text/Regex/PCRE.hs
+++ b/Text/Regex/PCRE.hs
@@ -57,6 +57,6 @@
 
 getVersion_Text_Regex_PCRE :: Version
 getVersion_Text_Regex_PCRE =
-  Version { versionBranch = [0,94,1]  -- Keep in sync with regex-pcre.cabal
+  Version { versionBranch = [0,94,2]  -- Keep in sync with regex-pcre.cabal
           , versionTags = ["unstable"]
           }
diff --git a/Text/Regex/PCRE/Wrap.hsc b/Text/Regex/PCRE/Wrap.hsc
--- a/Text/Regex/PCRE/Wrap.hsc
+++ b/Text/Regex/PCRE/Wrap.hsc
@@ -215,7 +215,8 @@
 getNumSubs' pcre_ptr =
   alloca $ \st -> do -- (st :: Ptr CInt)
     when (st == nullPtr) (fail "Text.Regex.PCRE.Wrap.getNumSubs' could not allocate a CInt!!!")
-    c_pcre_fullinfo pcre_ptr nullPtr pcreInfoCapturecount st
+    ok0 <- c_pcre_fullinfo pcre_ptr nullPtr pcreInfoCapturecount st
+    when (ok0 /= 0) (fail $ "Impossible/fatal: Haskell package regex-pcre error in Text.Posix.PCRE.Wrap.getNumSubs' of ok0 /= 0.  ok0 is from pcre_fullinfo c-function which returned  "++show ok0)
     peek st
 
 wrapTest startOffset (Regex pcre_fptr _ flags) (cstr,len) = do
@@ -338,7 +339,8 @@
 configUTF8 = unsafePerformIO $
   alloca $ \ptrVal -> do -- (ptrVal :: Ptr CInt)
     when (ptrVal == nullPtr) (fail "Text.Regex.PCRE.Wrap.configUTF8 could not alloca CInt!!!")
-    c_pcre_config pcreConfigUtf8 ptrVal
+    _unicodeSupported <- c_pcre_config pcreConfigUtf8 ptrVal
+    {- pcre_config: The  output  is  an  integer that is set to one if UTF-8 support is available; otherwise it is set to zero. -}
     val <- peek ptrVal
     case val of
       (1 :: CInt) -> return True
diff --git a/regex-pcre.cabal b/regex-pcre.cabal
--- a/regex-pcre.cabal
+++ b/regex-pcre.cabal
@@ -1,6 +1,6 @@
 Name:                   regex-pcre
 -- Keep the Version below in sync with ./Text/Regex/PCRE.hs value getVersion_Text_Regex_PCRE :: Version
-Version:                0.94.1
+Version:                0.94.2
 Cabal-Version:          >=1.2.3
 License:                BSD3
 License-File:           LICENSE
@@ -14,21 +14,30 @@
 Description:            The PCRE backend to accompany regex-base, see www.pcre.org
 Category:               Text
 Tested-With:            GHC
+Build-Type:             Simple
+flag newBase
+  description: Choose base >= 4
+  default: True
 flag splitBase
   description: Choose the new smaller, split-up base package.
+  default: True
 library
-  if flag(splitBase)
-    Build-Depends: base >= 3.0, regex-base >= 0.93, array, containers, bytestring
+  if flag(newBase)
+    Build-Depends: base >= 4 && < 5, regex-base >= 0.93, array, containers, bytestring
     -- Need the next symbol for using CPP to get Data.ByteString.Base|Unsafe in
     --  ./Text/Regex/Posix/ByteString.hs and  ./Text/Regex/Posix/ByteString/Lazy.hs
     CPP-Options: "-DSPLIT_BASE=1"
-    Extensions:    MultiParamTypeClasses, FunctionalDependencies, CPP, ForeignFunctionInterface, PatternSignatures, GeneralizedNewtypeDeriving, FlexibleContexts, TypeSynonymInstances, FlexibleInstances
+    Extensions:    MultiParamTypeClasses, FunctionalDependencies, CPP, ForeignFunctionInterface, ScopedTypeVariables, GeneralizedNewtypeDeriving, FlexibleContexts, TypeSynonymInstances, FlexibleInstances
   else
-    Build-Depends: base < 3.0, regex-base >= 0.93
-    Extensions:    MultiParamTypeClasses, FunctionalDependencies, CPP
-  -- Data-Files:
-  -- Extra-Source-Files:
-  -- Extra-Tmp-Files:
+    if flag(splitBase)
+      Build-Depends: base >= 3.0, regex-base >= 0.93, array, containers, bytestring
+      -- Need the next symbol for using CPP to get Data.ByteString.Base|Unsafe in
+      --  ./Text/Regex/Posix/ByteString.hs and  ./Text/Regex/Posix/ByteString/Lazy.hs
+      CPP-Options: "-DSPLIT_BASE=1"
+      Extensions:    MultiParamTypeClasses, FunctionalDependencies, CPP, ForeignFunctionInterface, ScopedTypeVariables, GeneralizedNewtypeDeriving, FlexibleContexts, TypeSynonymInstances, FlexibleInstances
+    else
+      Build-Depends: base < 3.0, regex-base >= 0.93
+      Extensions:    MultiParamTypeClasses, FunctionalDependencies, CPP
   Exposed-Modules:        Text.Regex.PCRE
                           Text.Regex.PCRE.Wrap
                           Text.Regex.PCRE.String
