diff --git a/doctest.cabal b/doctest.cabal
--- a/doctest.cabal
+++ b/doctest.cabal
@@ -1,5 +1,5 @@
 name:             doctest
-version:          0.9.2.1
+version:          0.9.3
 synopsis:         Test interactive Haskell examples
 description:      The doctest program checks examples in source code comments.
                   It is modeled after doctest for Python
@@ -77,6 +77,8 @@
       -DTEST
   hs-source-dirs:
       src, test
+  c-sources:
+      test/integration/with-cbits/foo.c
   build-depends:
       base        >= 4.0  && < 4.7
     , ghc         >= 6.12 && < 7.8
diff --git a/src/Extract.hs b/src/Extract.hs
--- a/src/Extract.hs
+++ b/src/Extract.hs
@@ -5,7 +5,7 @@
 import           Control.Monad
 import           Control.Applicative
 import           Control.Exception
-import           Data.List (partition)
+import           Data.List (partition, isSuffixOf)
 import           Data.Maybe
 import           Data.Foldable (concat)
 
@@ -65,7 +65,11 @@
 
 -- | Parse a list of modules.
 parse :: [String] -> IO [TypecheckedModule]
-parse args = withGhc args $ \modules -> withTempOutputDir $ do
+parse args = withGhc args $ \modules_ -> withTempOutputDir $ do
+
+  -- ignore additional object files
+  let modules = filter (not . isSuffixOf ".o") modules_
+
   mapM (`guessTarget` Nothing) modules >>= setTargets
   mods <- depanal [] False
 
diff --git a/test/integration/with-cbits/foo.c b/test/integration/with-cbits/foo.c
new file mode 100644
--- /dev/null
+++ b/test/integration/with-cbits/foo.c
@@ -0,0 +1,3 @@
+int foo() {
+  return 23;
+}
