diff --git a/copilot-c99.cabal b/copilot-c99.cabal
--- a/copilot-c99.cabal
+++ b/copilot-c99.cabal
@@ -1,6 +1,6 @@
 cabal-version             : >= 1.10
 name                      : copilot-c99
-version                   : 0.2.2
+version                   : 0.2.3
 synopsis                  : A compiler for Copilot targeting C99.
 description               : This is a back-end from Copilot to the Atom DSL. Please see README.mk for more details.
 license                   : BSD3
diff --git a/src/Copilot/Compile/C99.hs b/src/Copilot/Compile/C99.hs
--- a/src/Copilot/Compile/C99.hs
+++ b/src/Copilot/Compile/C99.hs
@@ -22,13 +22,18 @@
 import Language.Atom (Atom)
 import qualified Language.Atom as Atom
 
-import Control.Monad (when)
-import System.Directory (createDirectory, renameFile, removeFile)
+import Data.Char (toUpper)
+import Control.Monad (when, unless)
+import System.Directory ( doesDirectoryExist
+                        , createDirectory
+                        , removeDirectoryRecursive
+                        , renameFile
+                        , removeFile)
 
 --------------------------------------------------------------------------------
 
 c99DirName :: String
-c99DirName = "copilot-c99"
+c99DirName = "copilot-c99-codegen"
 
 c99FileRoot :: String
 c99FileRoot = "copilot"
@@ -37,14 +42,22 @@
 
 compile :: Params -> Core.Spec -> IO ()
 compile params spec0 = do
-  createDirectory dirName
-  (schedule, _, _, _, _) <- Atom.compile programName atomDefaults atomProgram
-  when (verbose params) $ putStrLn (Atom.reportSchedule schedule)
-  genC99Header (prefix params) dirName spec
-  mv ".c" -- the C file Atom generates
-  removeFile (programName ++ ".h")  -- We don't want Atom's .h file, but our own
-
+  b <- doesDirectoryExist dirName
+  when b $ do putStrLn "Directory exists.  Delete? [y/N]:"
+              input <- getLine
+              if (map toUpper input == "Y") 
+                then (removeDirectoryRecursive dirName) >> build
+                else putStrLn "Ok, nothing done.  Terminating."
+  unless b build 
   where
+  build = do 
+    createDirectory dirName
+    (schedule, _, _, _, _) <- Atom.compile programName atomDefaults atomProgram
+    when (verbose params) $ putStrLn (Atom.reportSchedule schedule)
+    genC99Header (prefix params) dirName spec
+    mv ".c" -- the C file Atom generates
+    removeFile (programName ++ ".h")  -- We don't want Atom's .h file, but our own
+
   mv ext = renameFile p (dirName ++ "/" ++ p)
     where p = programName ++ ext
 
