diff --git a/jeepyb/cmd/close_pull_requests.py b/jeepyb/cmd/close_pull_requests.py
index f3c4f4f..19d2d25 100644
--- a/jeepyb/cmd/close_pull_requests.py
+++ b/jeepyb/cmd/close_pull_requests.py
@@ -59,13 +59,18 @@
 
     PROJECTS_YAML = os.environ.get('PROJECTS_YAML',
                                    '/home/gerrit2/projects.yaml')
+    PROJECTS_INI = os.environ.get('PROJECTS_INI',
+                                  '/home/gerrit2/projects.ini')
     GITHUB_SECURE_CONFIG = os.environ.get('GITHUB_SECURE_CONFIG',
                                           '/etc/github/github.secure.config')
 
     secure_config = ConfigParser.ConfigParser()
     secure_config.read(GITHUB_SECURE_CONFIG)
-    (defaults, config) = [config for config in
-                          yaml.load_all(open(PROJECTS_YAML))]
+    yaml_docs = [config for config in yaml.load_all(open(PROJECTS_YAML))]
+    if os.path.exists(PROJECTS_INI):
+        config = yaml_docs[0]
+    else:
+        config = yaml_docs[1]
 
     if secure_config.has_option("github", "oauth_token"):
         ghub = github.Github(secure_config.get("github", "oauth_token"))
diff --git a/jeepyb/cmd/create_cgitrepos.py b/jeepyb/cmd/create_cgitrepos.py
index c13ef1f..0234c46 100644
--- a/jeepyb/cmd/create_cgitrepos.py
+++ b/jeepyb/cmd/create_cgitrepos.py
@@ -27,6 +27,8 @@
 
 PROJECTS_YAML = os.environ.get('PROJECTS_YAML',
                                '/home/cgit/projects.yaml')
+PROJECTS_INI = os.environ.get('PROJECTS_INI',
+                              '/home/gerrit2/projects.ini')
 CGIT_REPOS = os.environ.get('CGIT_REPOS',
                             '/etc/cgitrepos')
 REPO_PATH = os.environ.get('REPO_PATH',
@@ -39,7 +41,11 @@
 
 
 def main():
-    (defaults, config) = tuple(yaml.safe_load_all(open(PROJECTS_YAML)))
+    yaml_docs = [config for config in yaml.safe_load_all(open(PROJECTS_YAML))]
+    if os.path.exists(PROJECTS_INI):
+        config = yaml_docs[0]
+    else:
+        config = yaml_docs[1]
     gitorgs = {}
     names = set()
     for entry in config:
diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index 844eeb7..372e2ed 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -525,13 +525,13 @@
 
     PROJECTS_YAML = os.environ.get('PROJECTS_YAML',
                                    '/home/gerrit2/projects.yaml')
-    configs = [config for config in yaml.load_all(open(PROJECTS_YAML))]
+    yaml_docs = [config for config in yaml.safe_load_all(open(PROJECTS_YAML))]
 
     PROJECTS_INI = os.environ.get('PROJECTS_INI',
                                   '/home/gerrit2/projects.ini')
     if os.path.exists(PROJECTS_INI):
         # New-style - supports projects.ini
-        projects_yaml_list = configs[0]
+        projects_yaml_list = yaml_docs[0]
         defaults = ConfigParser.ConfigParser()
         defaults.read(PROJECTS_INI)
 
@@ -564,8 +564,8 @@
             '/etc/github/github-projects.secure.config')
     else:
         # Old-style - embedded
-        projects_yaml_list = configs[1]
-        defaults = configs[0][0]
+        projects_yaml_list = yaml_docs[1]
+        defaults = yaml_docs[0][0]
         default_has_github = defaults.get('has-github', True)
 
         LOCAL_GIT_DIR = defaults.get('local-git-dir', '/var/lib/git')
diff --git a/jeepyb/utils.py b/jeepyb/utils.py
index 92e0445..d010e3b 100644
--- a/jeepyb/utils.py
+++ b/jeepyb/utils.py
@@ -27,15 +27,20 @@
     It could be used as dict 'project name' -> 'project properties'.
     """
 
-    def __init__(self, file_path, env_name=None):
+    def __init__(self, file_path, env_name=None, single_doc=True):
         self.file_path = file_path
         self.env_name = env_name
+        self.single_doc = single_doc
 
         self._parse_file()
 
     def _parse_file(self):
         file_path = os.environ.get(self.env_name, self.file_path)
-        configs_list = [config for config in yaml.load_all(open(file_path))][1]
+        yaml_docs = [config for config in yaml.safe_load_all(open(file_path))]
+        if self.single_doc:
+            configs_list = yaml_docs[0]
+        else:
+            configs_list = yaml_docs[1]
 
         configs = {}
         for section in configs_list:
