diff --git a/hggit/git_handler.py b/hggit/git_handler.py
index 60acfbd7538269857192febe8033e539d671a52c_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..ad2ea8d6ef94c240ed2b71722554e022d383344a_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644
--- a/hggit/git_handler.py
+++ b/hggit/git_handler.py
@@ -710,10 +710,7 @@
                          ' bookmarks enabled?\n'))
 
     def update_remote_branches(self, remote_name, refs):
-        heads = dict([(ref[11:],refs[ref]) for ref in refs
-                      if ref.startswith('refs/heads/')])
-
-        for head, sha in heads.iteritems():
+        def _set_hg_tag(head, sha):
             # refs contains all the refs in the server, not just the ones
             # we are pulling
             if sha not in self.git.object_store:
@@ -717,8 +714,8 @@
             # refs contains all the refs in the server, not just the ones
             # we are pulling
             if sha not in self.git.object_store:
-                continue
+                return
             hgsha = bin(self.map_hg_get(sha))
             tag = '%s/%s' % (remote_name, head)
             self.repo.tag(tag, hgsha, '', True, None, None)
 
@@ -721,6 +718,6 @@
             hgsha = bin(self.map_hg_get(sha))
             tag = '%s/%s' % (remote_name, head)
             self.repo.tag(tag, hgsha, '', True, None, None)
 
-        for ref_name in refs:
+        for ref_name, sha in refs.iteritems():
             if ref_name.startswith('refs/heads'):
@@ -726,4 +723,7 @@
             if ref_name.startswith('refs/heads'):
-                new_ref = 'refs/remotes/%s/%s' % (remote_name, ref_name[11:])
-                self.git.refs[new_ref] = refs[ref_name]
+                head = ref_name[11:]
+                _set_hg_tag(head, sha)
+
+                new_ref = 'refs/remotes/%s/%s' % (remote_name, head)
+                self.git.refs[new_ref] = sha
             elif ref_name.startswith('refs/tags'):
@@ -729,5 +729,5 @@
             elif ref_name.startswith('refs/tags'):
-                self.git.refs[ref_name] = refs[ref_name]
+                self.git.refs[ref_name] = sha
 
 
     ## UTILITY FUNCTIONS
diff --git a/tests/test-hg-author.out b/tests/test-hg-author.out
index 60acfbd7538269857192febe8033e539d671a52c_dGVzdHMvdGVzdC1oZy1hdXRob3Iub3V0..ad2ea8d6ef94c240ed2b71722554e022d383344a_dGVzdHMvdGVzdC1oZy1hdXRob3Iub3V0 100644
--- a/tests/test-hg-author.out
+++ b/tests/test-hg-author.out
@@ -19,4 +19,5 @@
     default::refs/heads/master => GIT:2b9ec6a4
 @  changeset:   2:92d33c0dd6e1
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -22,5 +23,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test <test@example.com> (comment)
 |  date:        Mon Jan 01 00:00:12 2007 +0000
 |  summary:     modify beta
@@ -45,4 +45,5 @@
 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 @  changeset:   2:92d33c0dd6e1
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -48,5 +49,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test <test@example.com> (comment)
 |  date:        Mon Jan 01 00:00:12 2007 +0000
 |  summary:     modify beta
diff --git a/tests/test-hg-branch.out b/tests/test-hg-branch.out
index 60acfbd7538269857192febe8033e539d671a52c_dGVzdHMvdGVzdC1oZy1icmFuY2gub3V0..ad2ea8d6ef94c240ed2b71722554e022d383344a_dGVzdHMvdGVzdC1oZy1icmFuY2gub3V0 100644
--- a/tests/test-hg-branch.out
+++ b/tests/test-hg-branch.out
@@ -21,4 +21,5 @@
 @  changeset:   2:d93a72262a83
 |  branch:      gamma
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -24,5 +25,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test
 |  date:        Mon Jan 01 00:00:12 2007 +0000
 |  summary:     started branch gamma
@@ -48,4 +48,5 @@
 o  changeset:   2:d93a72262a83
 |  branch:      gamma
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -51,5 +52,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test
 |  date:        Mon Jan 01 00:00:12 2007 +0000
 |  summary:     started branch gamma
diff --git a/tests/test-hg-tags.out b/tests/test-hg-tags.out
index 60acfbd7538269857192febe8033e539d671a52c_dGVzdHMvdGVzdC1oZy10YWdzLm91dA==..ad2ea8d6ef94c240ed2b71722554e022d383344a_dGVzdHMvdGVzdC1oZy10YWdzLm91dA== 100644
--- a/tests/test-hg-tags.out
+++ b/tests/test-hg-tags.out
@@ -15,4 +15,5 @@
     default::refs/heads/master => GIT:9a2616b9
 @  changeset:   1:d529e9229f6d
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -18,5 +19,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test
 |  date:        Mon Jan 01 00:00:11 2007 +0000
 |  summary:     Added tag alpha for changeset 3442585be8a6
@@ -39,4 +39,5 @@
 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 @  changeset:   1:d529e9229f6d
 |  tag:         master
+|  tag:         tip
 |  tag:         default/master
@@ -42,5 +43,4 @@
 |  tag:         default/master
-|  tag:         tip
 |  user:        test
 |  date:        Mon Jan 01 00:00:11 2007 +0000
 |  summary:     Added tag alpha for changeset 3442585be8a6