diff --git a/manifest_xml.py b/manifest_xml.py
index 0664eff..030da18 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -146,9 +146,8 @@
     mp = self.manifestProject
 
     groups = mp.config.GetString('manifest.groups')
-    if not groups:
-      groups = 'all'
-    groups = [x for x in re.split(r'[,\s]+', groups) if x]
+    if groups:
+      groups = [x for x in re.split(r'[,\s]+', groups) if x]
 
     doc = xml.dom.minidom.Document()
     root = doc.createElement('manifest')
@@ -346,13 +345,20 @@
         for local_file in sorted(os.listdir(local_dir)):
           if local_file.endswith('.xml'):
             try:
-              nodes.append(self._ParseManifestXml(local_file, self.repodir))
+              local = os.path.join(local_dir, local_file)
+              nodes.append(self._ParseManifestXml(local, self.repodir))
             except ManifestParseError as e:
               print('%s' % str(e), file=sys.stderr)
       except OSError:
         pass
 
-      self._ParseManifest(nodes)
+      try:
+        self._ParseManifest(nodes)
+      except ManifestParseError as e:
+        # There was a problem parsing, unload ourselves in case they catch
+        # this error and try again later, we will show the correct error
+        self._Unload()
+        raise e
 
       if self.IsMirror:
         self._AddMetaProjectMirror(self.repoProject)
