diff --git a/ghc/compiler/ghci/CompManager.lhs b/ghc/compiler/ghci/CompManager.lhs
index dc033397cbc1733952ef47948ea23466b0b4257c..f3bedc6516bc5ef7f52d70186932f8d6e7548924 100644
--- a/ghc/compiler/ghci/CompManager.lhs
+++ b/ghc/compiler/ghci/CompManager.lhs
@@ -4,6 +4,13 @@
 \section[CompManager]{The Compilation Manager}
 
 \begin{code}
+#if 1
+module CompManager ( )
+where
+the_answer = "42"
+
+#else
+
 module CompManager ( cmInit, cmLoadModule, 
                      cmGetExpr, cmRunExpr,
                      CmState, emptyCmState  -- abstract
@@ -526,5 +533,5 @@ downsweep rootNm finder
                 if null newHomeSummaries
                  then return homeSummaries
                  else loop (newHomeSummaries ++ homeSummaries)
-                 
+#endif                 
 \end{code}
diff --git a/ghc/compiler/main/CmdLineOpts.lhs b/ghc/compiler/main/CmdLineOpts.lhs
index ab255397dd69f6ded5fef825a73452ec043615b8..a678e34def295ea049be3b044d7a2abb2d17c4b6 100644
--- a/ghc/compiler/main/CmdLineOpts.lhs
+++ b/ghc/compiler/main/CmdLineOpts.lhs
@@ -14,6 +14,8 @@ module CmdLineOpts (
 	DynFlag(..),	-- needed non-abstractly by DriverFlags
 	DynFlags(..),
 
+	v_Static_hsc_opts,
+
 	intSwitchSet,
 	switchIsOn,
 	isStaticHscFlag,
@@ -97,6 +99,7 @@ module CmdLineOpts (
 
 import Array	( array, (//) )
 import GlaExts
+import IOExts	( IORef, readIORef )
 import Argv
 import Constants	-- Default values for some flags
 import Util
@@ -314,15 +317,22 @@ dopt_HscLang = hscLang
 %************************************************************************
 
 \begin{code}
+-- v_Statis_hsc_opts is here to avoid a circular dependency with
+-- main/DriverState.
+GLOBAL_VAR(v_Static_hsc_opts, [], [String])
+
 lookUp	       	 :: FAST_STRING -> Bool
 lookup_int     	 :: String -> Maybe Int
 lookup_def_int   :: String -> Int -> Int
 lookup_def_float :: String -> Float -> Float
 lookup_str       :: String -> Maybe String
 
-lookUp     sw = sw `elem` argv
+unpacked_static_opts = unsafePerformIO (readIORef v_Static_hsc_opts)
+packed_static_opts   = map _PK_ unpacked_static_opts
+
+lookUp     sw = sw `elem` packed_static_opts
 	
-lookup_str sw = firstJust (map (startsWith sw) unpacked_opts)
+lookup_str sw = firstJust (map (startsWith sw) unpacked_static_opts)
 
 lookup_int sw = case (lookup_str sw) of
 		  Nothing -> Nothing
@@ -340,7 +350,6 @@ lookup_def_float sw def = case (lookup_str sw) of
 			    Nothing -> def		-- Use default
 		  	    Just xx -> read xx
 
-unpacked_opts = map _UNPK_ argv
 
 {-
  Putting the compiler options into temporary at-files
@@ -352,7 +361,7 @@ unpacked_opts :: [String]
 unpacked_opts =
   concat $
   map (expandAts) $
-  map _UNPK_ argv
+  map _UNPK_ argv  -- NOT ARGV any more: v_Static_hsc_opts
   where
    expandAts ('@':fname) = words (unsafePerformIO (readFile fname))
    expandAts l = [l]
diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs
index 49476afd94da9c94171c743356cb028ec15c3d36..f3299af05d2c7400c5b8b034f21bdb40d39823ce 100644
--- a/ghc/compiler/main/DriverState.hs
+++ b/ghc/compiler/main/DriverState.hs
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $Id: DriverState.hs,v 1.7 2000/10/26 16:21:02 sewardj Exp $
+-- $Id: DriverState.hs,v 1.8 2000/10/26 16:51:44 sewardj Exp $
 --
 -- Settings for the driver
 --
@@ -93,8 +93,6 @@ cHaskell1Version = "5" -- i.e., Haskell 98
 -----------------------------------------------------------------------------
 -- Global compilation flags
 
-GLOBAL_VAR(v_Static_hsc_opts, [], [String])
-
 -- location of compiler-related files
 GLOBAL_VAR(v_TopDir,  clibdir, String)
 GLOBAL_VAR(v_Inplace, False,   Bool)
diff --git a/ghc/compiler/main/Main.hs b/ghc/compiler/main/Main.hs
index bc5d04b3c17a166d24878dbc0bfce3c2ed94ba6b..e3e58f0205da1d79c97c0ae00566f6d3cc98a0d1 100644
--- a/ghc/compiler/main/Main.hs
+++ b/ghc/compiler/main/Main.hs
@@ -1,6 +1,6 @@
 {-# OPTIONS -W -fno-warn-incomplete-patterns #-}
 -----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.10 2000/10/26 16:21:02 sewardj Exp $
+-- $Id: Main.hs,v 1.11 2000/10/26 16:51:44 sewardj Exp $
 --
 -- GHC Driver program
 --
@@ -21,7 +21,7 @@ import DriverFlags
 import DriverMkDepend
 import DriverUtil
 import DriverPhases	( Phase(..) )
-import CmdLineOpts	( HscLang(..), DynFlags(..) )
+import CmdLineOpts	( HscLang(..), DynFlags(..), v_Static_hsc_opts )
 import TmpFiles
 import Config
 import Util
@@ -42,6 +42,8 @@ import List
 import System
 import Maybe
 
+import CompManager
+
 -----------------------------------------------------------------------------
 -- Changes:
 
diff --git a/ghc/compiler/parser/Parser.y b/ghc/compiler/parser/Parser.y
index 7cf5dd2595c25061887d56215b5f7581f3b0a335..6e7fbf6176f55fc29581aaf5f7935397083a56f6 100644
--- a/ghc/compiler/parser/Parser.y
+++ b/ghc/compiler/parser/Parser.y
@@ -1,6 +1,6 @@
 {-
 -----------------------------------------------------------------------------
-$Id: Parser.y,v 1.44 2000/10/24 13:23:33 sewardj Exp $
+$Id: Parser.y,v 1.45 2000/10/26 16:51:44 sewardj Exp $
 
 Haskell grammar.
 
@@ -12,7 +12,6 @@ Author(s): Simon Marlow, Sven Panne 1997, 1998, 1999
 module Parser ( parse ) where
 
 import HsSyn
-import HsPragmas
 import HsTypes		( mkHsTupCon )
 import HsPat            ( InPat(..) )