diff --git a/project.py b/project.py
index 60fa510..1c5f051 100644
--- a/project.py
+++ b/project.py
@@ -691,7 +691,7 @@
     di = self.work_git.DiffZ('diff-index', '-M', '--cached', HEAD)
     df = self.work_git.DiffZ('diff-files')
     do = self.work_git.LsOthers()
-    if not rb and not di and not df and not do:
+    if not rb and not di and not df and not do and not self.CurrentBranch:
       return 'CLEAN'
 
     out = StatusColoring(self.config)
diff --git a/subcmds/status.py b/subcmds/status.py
index 041bcd0..7187f4b 100644
--- a/subcmds/status.py
+++ b/subcmds/status.py
@@ -101,19 +101,6 @@
     all = self.GetProjects(args)
     counter = itertools.count()
 
-    on = {}
-    for project in all:
-      cb = project.CurrentBranch
-      if cb:
-        if cb not in on:
-          on[cb] = []
-        on[cb].append(project)
-
-    branch_names = list(on.keys())
-    branch_names.sort()
-    for cb in branch_names:
-      print '# on branch %s' % cb
-
     if opt.jobs == 1:
       for project in all:
         state = project.PrintWorkTreeStatus()
