diff --git a/swh/loader/mercurial/loader.py b/swh/loader/mercurial/loader.py
--- a/swh/loader/mercurial/loader.py
+++ b/swh/loader/mercurial/loader.py
@@ -47,6 +47,8 @@
 
 TEMPORARY_DIR_PREFIX_PATTERN = 'swh.loader.mercurial.'
 
+HEAD_POINTER_NAME = b'tip'
+
 
 class HgBundle20Loader(SWHStatelessLoader):
     """Mercurial loader able to deal with remote or local repository.
@@ -97,21 +99,22 @@
 
     def get_heads(self, repo):
         """Read the closed branches heads (branch, bookmarks) and returns a
-           dict with branch_name (bytes) and mercurial's node id
-           (bytes). Those needs conversion to swh-ids. This is taken
+           dict with key the branch_name (bytes) and values the tuple
+           (pointer nature (bytes), mercurial's node id
+           (bytes)). Those needs conversion to swh-ids. This is taken
            care of in get_revisions.
 
         """
         b = {}
-        for _, node_hash_id, _, branch_name, *_ in repo.heads():
-            b[branch_name] = hash_to_bytes(
-                node_hash_id.decode())
+        for _, node_hash_id, pointer_nature, branch_name, *_ in repo.heads():
+            b[branch_name] = (
+                pointer_nature, hash_to_bytes(node_hash_id.decode()))
 
         bookmarks = repo.bookmarks()
         if bookmarks and bookmarks[0]:
             for bookmark_name, _, target_short in bookmarks[0]:
                 target = repo[target_short].node()
-                b[bookmark_name] = hash_to_bytes(target.decode())
+                b[bookmark_name] = (None, hash_to_bytes(target.decode()))
 
         return b
 
@@ -409,8 +412,8 @@
 
         # Converts heads to use swh ids
         self.heads = {
-            branch_name: self.node_2_rev[node_id]
-            for branch_name, node_id in self.heads.items()
+            branch_name: (pointer_nature, self.node_2_rev[node_id])
+            for branch_name, (pointer_nature, node_id) in self.heads.items()
         }
 
         missing_revs = revisions.keys()
@@ -475,8 +478,10 @@
     def get_snapshot(self):
         """Get the snapshot that need to be loaded."""
         branches = {}
-        for name, target in self.heads.items():
+        for name, (pointer_nature, target) in self.heads.items():
             branches[name] = {'target': target, 'target_type': 'revision'}
+            if pointer_nature == HEAD_POINTER_NAME:
+                branches[b'HEAD'] = {'target': name, 'target_type': 'alias'}
         for name, target in self.releases.items():
             branches[name] = {'target': target, 'target_type': 'release'}
 
diff --git a/swh/loader/mercurial/loader_verifier.py b/swh/loader/mercurial/loader_verifier.py
--- a/swh/loader/mercurial/loader_verifier.py
+++ b/swh/loader/mercurial/loader_verifier.py
@@ -218,7 +218,7 @@
             self.visit = 'foo'
             logging.debug('getting snapshot')
             o = self.get_snapshot()
-            logging.debug(o['branches'].keys())
+            logging.debug('Snapshot: %s' % o)
 
         finally:
             self.cleanup()
diff --git a/swh/loader/mercurial/tests/test_loader.py b/swh/loader/mercurial/tests/test_loader.py
--- a/swh/loader/mercurial/tests/test_loader.py
+++ b/swh/loader/mercurial/tests/test_loader.py
@@ -173,7 +173,7 @@
         self.assertCountSnapshots(1)
 
         expected_snapshot = {
-            'id': '05cad59e8980069d9fe2324d406cf226c0021e1c',
+            'id': '3b8fe58e467deb7597b12a5fd3b2c096b8c02028',
             'branches': {
                 'develop': {
                     'target': tip_revision_develop,
@@ -183,6 +183,10 @@
                     'target': tip_revision_default,
                     'target_type': 'revision'
                 },
+                'HEAD': {
+                    'target': 'develop',
+                    'target_type': 'alias',
+                }
             }
         }
 
@@ -233,7 +237,7 @@
         self.assertCountSnapshots(1)
 
         expected_snapshot = {
-            'id': 'fa537f8e0cbdb8a54e29533302ed6fcbee28cb7b',
+            'id': 'd35668e02e2ba4321dc951cd308cf883786f918a',
             'branches': {
                 'default': {
                     'target': tip_revision_default,
@@ -242,6 +246,10 @@
                 '0.1': {
                     'target': tip_release,
                     'target_type': 'release'
+                },
+                'HEAD': {
+                    'target': 'default',
+                    'target_type': 'alias',
                 }
             }
         }