diff --git a/Optimus/CallGraph.hs b/Optimus/CallGraph.hs
--- a/Optimus/CallGraph.hs
+++ b/Optimus/CallGraph.hs
@@ -120,7 +120,7 @@
 							return $ head (ys ++ [x])
 			t env f e = return e
 	
-	selectFuncs n p = nub $ selectFuncs2 n p ++ ["main"]
+	selectFuncs n p = nub $ selectFuncs2 n p
 	
 	selectFuncs1 :: Prog -> [Id]
 	selectFuncs1 p = (evalState (traverse "main") Set.empty)
diff --git a/Optimus/Strategy.hs b/Optimus/Strategy.hs
--- a/Optimus/Strategy.hs
+++ b/Optimus/Strategy.hs
@@ -48,7 +48,7 @@
 			m = t_M $ byFuncName p
 	
 	supercompileMany :: [String] -> Prog -> Prog
-	supercompileMany fs p = flip onlyReachable (last fs) $ freshProg (finalSimplification simplifyProg . flip onlyReachable (last fs) <=< finalInlining progInline) (foldl (flip supercompileFunc) p fs)
+	supercompileMany fs p = flip onlyReachable "main" $ freshProg (finalSimplification simplifyProg . flip onlyReachable "main" <=< finalInlining progInline) (foldl (flip supercompileFunc) p fs)
 	
 	supercompile :: Prog -> Prog
 	supercompile = flip onlyReachable "main" . freshProg (finalSimplification simplifyProg . flip onlyReachable "main"  <=< finalInlining progInline) . supercompileFunc "main"
diff --git a/OptimusPrime.hs b/OptimusPrime.hs
--- a/OptimusPrime.hs
+++ b/OptimusPrime.hs
@@ -16,7 +16,7 @@
 					 , scFile :: [String] }
 	deriving (Show, Data, Typeable)
 
-data SCOption = Normal | Graph | Auto | List
+data SCOption = Normal | Graph | Auto | List | Stats
 	deriving (Show, Data, Typeable, Eq)
 
 version = "OptimusPrime v0.0.1, (C) Jason Reich <jason@cs.york.ac.uk>"
diff --git a/optimusprime.cabal b/optimusprime.cabal
--- a/optimusprime.cabal
+++ b/optimusprime.cabal
@@ -1,5 +1,5 @@
 Name:              optimusprime
-version: 0.0.1.20091114
+version: 0.0.1.20091117
 Synopsis:          A supercompiler for f-lite
 License:           BSD3
 License-file:      LICENSE
