diff --git a/project.py b/project.py
index 8ed6155..2425467 100644
--- a/project.py
+++ b/project.py
@@ -733,6 +733,20 @@
     else:
       raise GitError('%s checkout %s ' % (self.name, rev))
 
+  def CheckoutBranch(self, name):
+    """Checkout a local topic branch.
+    """
+
+    # Be sure the branch exists
+    try:
+      tip_rev = self.bare_git.rev_parse(R_HEADS + name)
+    except GitError:
+      return False;
+
+    # Do the checkout
+    cmd = ['checkout', name, '--']
+    return GitCommand(self, cmd, capture_stdout=True).Wait() == 0
+
   def AbandonBranch(self, name):
     """Destroy a local topic branch.
     """
diff --git a/subcmds/checkout.py b/subcmds/checkout.py
new file mode 100644
index 0000000..7ce9d34
--- /dev/null
+++ b/subcmds/checkout.py
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+from command import Command
+
+class Checkout(Command):
+  common = True
+  helpSummary = "Checkout a branch for development"
+  helpUsage = """
+%prog <branchname> [<project>...]
+
+This subcommand checks out an existing branch and
+is equivalent to the following git command run on
+every project or the list of specified projects:
+
+"git checkout <branchname>"
+"""
+
+  def Execute(self, opt, args):
+    if not args:
+      self.Usage()
+
+    retValue = 0;
+
+    branch = args[0]
+    for project in self.GetProjects(args[1:]):
+      if not project.CheckoutBranch(branch):
+        retValue = 1;
+        print >>sys.stderr, "error: checking out branch '%s' in %s failed" % (branch, project.name)
+
+    if (retValue != 0):
+      sys.exit(retValue);
