diff --git a/docs/manifest-format.txt b/docs/manifest-format.txt
index 764e41e..5378965 100644
--- a/docs/manifest-format.txt
+++ b/docs/manifest-format.txt
@@ -39,6 +39,7 @@
     <!ATTLIST default remote   IDREF #IMPLIED>
     <!ATTLIST default revision CDATA #IMPLIED>
     <!ATTLIST default sync-j   CDATA #IMPLIED>
+    <!ATTLIST default sync-c   CDATA #IMPLIED>
 
     <!ELEMENT manifest-server (EMPTY)>
     <!ATTLIST url              CDATA #REQUIRED>
@@ -49,6 +50,7 @@
     <!ATTLIST project remote   IDREF #IMPLIED>
     <!ATTLIST project revision CDATA #IMPLIED>
     <!ATTLIST project groups   CDATA #IMPLIED>
+    <!ATTLIST project sync-c   CDATA #IMPLIED>
 
     <!ELEMENT annotation (EMPTY)>
     <!ATTLIST annotation name  CDATA #REQUIRED>
diff --git a/manifest_xml.py b/manifest_xml.py
index d20eac2..ca65e33 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -35,6 +35,7 @@
   revisionExpr = None
   remote = None
   sync_j = 1
+  sync_c = False
 
 class _XmlRemote(object):
   def __init__(self,
@@ -159,6 +160,9 @@
     if d.sync_j > 1:
       have_default = True
       e.setAttribute('sync-j', '%d' % d.sync_j)
+    if d.sync_c:
+      have_default = True
+      e.setAttribute('sync-c', 'true')
     if have_default:
       root.appendChild(e)
       root.appendChild(doc.createTextNode(''))
@@ -212,6 +216,9 @@
           ae.setAttribute('value', a.value)
           e.appendChild(ae)
 
+      if p.sync_c:
+        e.setAttribute('sync-c', 'true')
+
     if self._repo_hooks_project:
       root.appendChild(doc.createTextNode(''))
       e = doc.createElement('repo-hooks')
@@ -444,11 +451,18 @@
     d.revisionExpr = node.getAttribute('revision')
     if d.revisionExpr == '':
       d.revisionExpr = None
+
     sync_j = node.getAttribute('sync-j')
     if sync_j == '' or sync_j is None:
       d.sync_j = 1
     else:
       d.sync_j = int(sync_j)
+
+    sync_c = node.getAttribute('sync-c')
+    if not sync_c:
+      d.sync_c = False
+    else:
+      d.sync_c = sync_c.lower() in ("yes", "true", "1")
     return d
 
   def _ParseNotice(self, node):
@@ -526,6 +540,12 @@
     else:
       rebase = rebase.lower() in ("yes", "true", "1")
 
+    sync_c = node.getAttribute('sync-c')
+    if not sync_c:
+      sync_c = False
+    else:
+      sync_c = sync_c.lower() in ("yes", "true", "1")
+
     groups = ''
     if node.hasAttribute('groups'):
       groups = node.getAttribute('groups')
@@ -550,7 +570,8 @@
                       revisionExpr = revisionExpr,
                       revisionId = None,
                       rebase = rebase,
-                      groups = groups)
+                      groups = groups,
+                      sync_c = sync_c)
 
     for n in node.childNodes:
       if n.nodeName == 'copyfile':
diff --git a/project.py b/project.py
index 2b74000..40f6f31 100644
--- a/project.py
+++ b/project.py
@@ -510,7 +510,8 @@
                revisionExpr,
                revisionId,
                rebase = True,
-               groups = None):
+               groups = None,
+               sync_c = False):
     self.manifest = manifest
     self.name = name
     self.remote = remote
@@ -531,6 +532,7 @@
 
     self.rebase = rebase
     self.groups = groups
+    self.sync_c = sync_c
 
     self.snapshots = {}
     self.copyfiles = []
@@ -964,6 +966,7 @@
     and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
       is_new = False
 
+    current_branch_only = current_branch_only or self.sync_c or self.manifest.default.sync_c
     if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir,
                              current_branch_only=current_branch_only):
       return False
