diff --git a/autogen.sh b/autogen.sh
index 9d1f65b4bf049faab4b30d4b047fa1d2b227196e..f852dfe90f425d33cb8fcb899f6d2d4d1dfca098 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,7 +1,8 @@
 #!/usr/bin/env bash
   gajimversion="0.13.90.1"
   if [ -d ".hg" ]; then
-    hgversion="-$(hexdump -n6 -e'6/1 "%02x"' .hg/dirstate)"
+    node=$(hg  tip --template "{node}")
+    hgversion="-${node:0:12}"
   else
     hgversion=""
   fi
diff --git a/src/common/defs.py b/src/common/defs.py
index 63f278b96ce0d25e33fa8a4977e73f6c2e61e332..cf29b609173869e290b9a45da5e38a41b0f360b5 100644
--- a/src/common/defs.py
+++ b/src/common/defs.py
@@ -30,8 +30,11 @@ localedir = '../po'
 version = '0.13.90.1'
 import subprocess
 try:
-    hgversion = subprocess.Popen('hexdump -n6 -e\'6/1 "%02x"\' ../.hg/dirstate',
-        shell=True, stdout=subprocess.PIPE).communicate()[0]
+    from mercurial import ui, hg
+    from mercurial.context import hex as hex_
+    repo = hg.repository(ui.ui(), '..')
+    node = repo['tip'].node()
+    hgversion = hex_(node)[:12]
     version += '-' + hgversion
 except Exception:
     pass