diff --git a/Kit/Main.hs b/Kit/Main.hs
--- a/Kit/Main.hs
+++ b/Kit/Main.hs
@@ -38,11 +38,12 @@
   doUpdate :: IO ()
   doUpdate = run $ do
               repo <- liftIO defaultLocalRepository
+              spec <- myKitSpec
               deps <- getMyDeps repo
               puts $ "Dependencies: " ++ (stringJoin ", " $ map kitFileName deps)
               liftIO $ mapM (installKit repo) deps
               puts " -> Generating XCode project..."
-              generateXCodeProject deps
+              generateXCodeProject deps $ specKitDepsXcodeFlags spec
               puts "Kit complete. You may need to restart XCode for it to pick up any changes."
                 where p x = liftIO $ print x
                       puts x = liftIO $ putStrLn x
diff --git a/Kit/Model.hs b/Kit/Model.hs
--- a/Kit/Model.hs
+++ b/Kit/Model.hs
@@ -11,7 +11,8 @@
     specTestDirectory :: FilePath,
     specLibDirectory :: FilePath,
     specPrefixFile :: FilePath,
-    specConfigFile :: FilePath
+    specConfigFile :: FilePath,
+    specKitDepsXcodeFlags :: Maybe String
   } deriving (Show, Read)
 
   type Version = String
@@ -25,7 +26,7 @@
   kitFileName k = kitName k ++ "-" ++ kitVersion k
 
   defaultSpecForKit :: Kit -> KitSpec
-  defaultSpecForKit kit = KitSpec kit [] "src" "test" "lib" "Prefix.pch" "Config.xcconfig"
+  defaultSpecForKit kit = KitSpec kit [] "src" "test" "lib" "Prefix.pch" "Config.xcconfig" Nothing
   -- TODO make this and the json reading use the same defaults
   -- I suspect that to do this I'll need update functions for each of
   -- fields in the KitSpec record.
@@ -35,7 +36,7 @@
       showJSON kit = makeObj [ ("name", w kitName) , ("version", w kitVersion) ] where w f = showJSON . f $ kit
 
       readJSON (JSObject obj) = Kit <$> f "name" <*> f "version"
-        where f x = f' obj x 
+                                  where f x = f' obj x 
 
   instance JSON KitSpec where
       showJSON spec = makeObj [
@@ -53,6 +54,7 @@
                       <*> (f "lib-directory" <|> pure "lib")
                       <*> (f "prefix-header" <|> pure "Prefix.pch")
                       <*> (f "xcconfig" <|> pure "Config.xcconfig")
+                      <*> (Just <$> f "kitdeps-xcode-flags" <|> pure Nothing)
         where f x = f' obj x
 
   f' obj x = mLookup x (fromJSObject obj) >>= readJSON
diff --git a/Kit/Project.hs b/Kit/Project.hs
--- a/Kit/Project.hs
+++ b/Kit/Project.hs
@@ -29,6 +29,7 @@
   prefixFile = "KitDeps_Prefix.pch"
   projectFile = projectDir </> "project.pbxproj"
   xcodeConfigFile = "Kit.xcconfig"
+  depsConfigFile = "DepsOnly.xcconfig"
   kitUpdateMakeFilePath = "Makefile"
   kitUpdateMakeFile = "kit: Kit.xcconfig\nKit.xcconfig: ../KitSpec\n\tcd .. && kit update && exit 1\n"
 
@@ -51,15 +52,16 @@
         prefix = readHeader spec
     in  KitContents <$> headers <*> sources <*> libs <*> config <*> prefix
 
-  generateXCodeProject :: [Kit] -> KitIO ()
-  generateXCodeProject deps = do
+  generateXCodeProject :: [Kit] -> Maybe String -> KitIO ()
+  generateXCodeProject deps depsOnlyConfig = do
     liftIO $ mkdir_p kitDir
     specs <- forM deps $ \kit -> readSpec (kitDir </> kitFileName kit </> "KitSpec")  
-    inDirectory kitDir $ do
-      kitsContents <- forM specs (liftIO . readKitContents)
-      liftIO $ createProjectFile kitsContents
-      liftIO $ createHeader kitsContents
-      liftIO $ createConfig kitsContents specs
+    liftIO $ inDirectory kitDir $ do
+      kitsContents <- forM specs readKitContents
+      createProjectFile kitsContents
+      createHeader kitsContents
+      createConfig kitsContents specs
+      writeFile depsConfigFile $ "#include \"" ++ xcodeConfigFile ++ "\"\n" ++ fromMaybe "" depsOnlyConfig 
     where kitFileNames = map kitFileName deps
           sourceDirs specs = specs >>= (\spec -> [
               kitDir </> (kitFileName . specKit $ spec) </> specSourceDirectory spec, 
diff --git a/Kit/Repository.hs b/Kit/Repository.hs
--- a/Kit/Repository.hs
+++ b/Kit/Repository.hs
@@ -1,10 +1,3 @@
-{-
-  Exposes the repositories.
-  Allows you to:
-    * copy down kit packages (getKit)
-    * read kit specs (getKitSpec)
--}
-
 module Kit.Repository (
     getKit,
     getKitSpec,
diff --git a/Kit/XCode/Builder.hs b/Kit/XCode/Builder.hs
--- a/Kit/XCode/Builder.hs
+++ b/Kit/XCode/Builder.hs
@@ -28,7 +28,7 @@
       allBuildFiles = (sourceBuildFiles ++ headerBuildFiles ++ libBuildFiles)
       bfs = buildFileSection allBuildFiles
       frs = fileReferenceSection $ map buildFileReference allBuildFiles
-      classes = classesSection $ map buildFileReference (sourceBuildFiles ++ headerBuildFiles)
+      classes = classesGroup $ map buildFileReference (sourceBuildFiles ++ headerBuildFiles)
       hs = headersBuildPhase headerBuildFiles
       srcs = sourcesBuildPhase sourceBuildFiles
       xxx = frameworksBuildPhase $ traceShow libBuildFiles libBuildFiles
@@ -47,7 +47,7 @@
         "isa" ~> val "PBXFileReference",
         "fileEncoding" ~> val "4",
         "lastKnownFileType" ~> val "text.xcconfig",
-        "path" ~> val "Kit.xcconfig",
+        "path" ~> val "DepsOnly.xcconfig",
         "sourceTree" ~> val "<group>"
         ],
       "AA747D9E0F9514B9006C5449" ~> obj [
@@ -73,8 +73,8 @@
       ]
     ]
 
-  classesSection :: [PBXFileReference] -> PListObjectItem 
-  classesSection files = classesGroupUUID ~> group "Classes" (map (val . fileReferenceId) files)
+  classesGroup :: [PBXFileReference] -> PListObjectItem 
+  classesGroup files = classesGroupUUID ~> group "Classes" (map (val . fileReferenceId) files)
 	
   frameworksGroup :: [PBXFileReference] -> PListObjectItem
   frameworksGroup files = frameworksGroupUUID ~> group "Frameworks" (val "AACBBE490F95108600F1A2B1" :  (map (val . fileReferenceId) files))
diff --git a/Kit/XCode/XCConfig.hs b/Kit/XCode/XCConfig.hs
--- a/Kit/XCode/XCConfig.hs
+++ b/Kit/XCode/XCConfig.hs
@@ -11,7 +11,11 @@
   type XCCSetting = (String, String)
   type XCCInclude = String
                     
-  data XCConfig = XCC { configName :: String, configSettings :: M.Map String String, configIncludes :: [XCCInclude] } deriving (Eq, Show)
+  data XCConfig = XCC { 
+    configName :: String, 
+    configSettings :: M.Map String String, 
+    configIncludes :: [XCCInclude]
+  } deriving (Eq, Show)
   
   includeStart = "#include "
   
@@ -33,7 +37,6 @@
   includeToString :: XCCInclude -> String
   includeToString a = includeStart ++ a
   
-  -- TODO incorporate the config name
   configToString :: XCConfig -> String
   configToString (XCC _ settings includes) = stringJoin "\n" $ (map includeToString includes) ++ (map settingToString $ M.toList settings)
                   
diff --git a/kit.cabal b/kit.cabal
--- a/kit.cabal
+++ b/kit.cabal
@@ -1,5 +1,5 @@
 name:           kit
-version:        0.5.1
+version:        0.5.2
 cabal-version:  >=1.2
 build-type:     Simple
 license:        BSD3
