diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # shake-c
 
+## 0.4.2.0
+
+  * Do not use oracles; they cause problems
+
 ## 0.4.1.0
 
   * Add `idOracle`
diff --git a/shake-c.cabal b/shake-c.cabal
--- a/shake-c.cabal
+++ b/shake-c.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: shake-c
-version: 0.4.1.0
+version: 0.4.2.0
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018-2019 Vanessa McHale
diff --git a/src/Development/Shake/C.hs b/src/Development/Shake/C.hs
--- a/src/Development/Shake/C.hs
+++ b/src/Development/Shake/C.hs
@@ -7,7 +7,7 @@
 -- libraries, and dynamic libraries.
 module Development.Shake.C ( -- * Types
                              CConfig (..)
-                           , CCompiler (..) -- (ICC, GCC, Clang, GHC, Other, GCCStd, GHCStd, CompCert)
+                           , CCompiler (..)
                            -- * Rules
                            , staticLibR
                            , sharedLibR
@@ -190,14 +190,10 @@
         -> FilePattern -- ^ Shared object file to be generated.
         -> CConfig
         -> Rules ()
-dynLibR cc objFiles shLib cfg = do
-    ccOracle <- idOracle
-    cconfOracle <- idOracle
+dynLibR cc objFiles shLib cfg =
     shLib %> \out -> do
         need objFiles
-        cc' <- ccOracle cc
-        cfg' <- cconfOracle cfg
-        command [EchoStderr False] (ccToString cc') ("-shared" : "-o" : out : objFiles ++ cconfigToArgs cfg')
+        command [EchoStderr False] (ccToString cc) ("-shared" : "-o" : out : objFiles ++ cconfigToArgs cfg)
 
 -- | These rules build an object file from a C source file.
 objectFileR :: CCompiler
@@ -205,14 +201,10 @@
             -> FilePath -- ^ C source file
             -> FilePattern -- ^ Object file output
             -> Rules ()
-objectFileR cc cfg srcFile objFile = do
-    ccOracle <- idOracle
-    cconfOracle <- idOracle
+objectFileR cc cfg srcFile objFile =
     objFile %> \out -> do
         need [srcFile]
-        cc' <- ccOracle cc
-        cfg' <- cconfOracle cfg
-        command [EchoStderr False] (ccToString cc') (srcFile : "-c" : "-fPIC" : "-o" : out : cconfigToArgs cfg')
+        command [EchoStderr False] (ccToString cc) (srcFile : "-c" : "-fPIC" : "-o" : out : cconfigToArgs cfg)
 
 sharedLibA :: CmdResult r
            => CCompiler
@@ -239,23 +231,15 @@
            -> FilePattern -- ^ File pattern for shared library outputs
            -> CConfig
            -> Rules ()
-sharedLibR cc objFiles shrLib cfg = do
-    ccOracle <- idOracle
-    cconfOracle <- idOracle
-    shrLib %> \out -> do
-        cc' <- ccOracle cc
-        cfg' <- cconfOracle cfg
-        sharedLibA cc' objFiles out cfg'
+sharedLibR cc objFiles shrLib cfg =
+    shrLib %> \out ->
+        sharedLibA cc objFiles out cfg
 
 staticLibR :: CCompiler
            -> [FilePath] -- ^ Object files to be linked
            -> FilePattern -- ^ File pattern for static library outputs
            -> CConfig
            -> Rules ()
-staticLibR ar objFiles stalib cfg = do
-    ccOracle <- idOracle
-    cconfOracle <- idOracle
-    stalib %> \out -> do
-        ar' <- ccOracle ar
-        cfg' <- cconfOracle cfg
-        staticLibA ar' objFiles out cfg'
+staticLibR ar objFiles stalib cfg =
+    stalib %> \out ->
+        staticLibA ar objFiles out cfg
