diff --git a/scripts/get_source_date_epoch.sh b/scripts/get_source_date_epoch.sh
index ea8d930109ad00e2cbff2054e2369745993008b6..84ba4454543982716cc7f488840975ae832da104 100755
--- a/scripts/get_source_date_epoch.sh
+++ b/scripts/get_source_date_epoch.sh
@@ -17,9 +17,14 @@ try_git() {
 
 try_hg() {
 	[ -d .hg ] || return 1
-	SOURCE_DATE_EPOCH=""
+	SOURCE_DATE_EPOCH="$(hg log --template '{date}' -l 1 | cut -d. -f1)"
 	[ -n "$SOURCE_DATE_EPOCH" ]
 }
 
-try_version || try_git || try_hg || SOURCE_DATE_EPOCH=""
+try_mtime() {
+	perl -e 'print((stat $ARGV[0])[9])' "$0"
+	[ -n "$SOURCE_DATE_EPOCH" ]
+}
+
+try_version || try_git || try_hg || try_mtime || SOURCE_DATE_EPOCH=""
 echo "$SOURCE_DATE_EPOCH"