diff --git a/src/Makefile.am b/src/Makefile.am
index 1a84098e..c48e3fdd 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,6 +2,9 @@
 
 sbin_PROGRAMS = tincd tinc sptps_test sptps_keypair
 
+## Make sure version.c is always rebuilt
+.PHONY: version.c
+
 if LINUX
 sbin_PROGRAMS += sptps_speed
 endif
@@ -88,6 +91,7 @@ tincd_SOURCES = \
 	tincd.c \
 	utils.c utils.h \
 	xalloc.h \
+	version.c version.h \
 	$(ed25519_SOURCES) \
 	$(chacha_poly1305_SOURCES)
 
@@ -106,6 +110,7 @@ tinc_SOURCES = \
 	tincctl.c tincctl.h \
 	top.c top.h \
 	utils.c utils.h \
+	version.c version.h \
 	$(ed25519_SOURCES) \
 	$(chacha_poly1305_SOURCES)
 
diff --git a/src/process.c b/src/process.c
index 98f4d33a..15120aca 100644
--- a/src/process.c
+++ b/src/process.c
@@ -34,6 +34,7 @@
 #include "subnet.h"
 #include "utils.h"
 #include "xalloc.h"
+#include "version.h"
 
 /* If zero, don't detach from the terminal. */
 bool do_detach = true;
@@ -223,7 +224,7 @@ bool detach(void) {
 	openlogger(identname, use_logfile?LOGMODE_FILE:(do_detach?LOGMODE_SYSLOG:LOGMODE_STDERR));
 
 	logger(DEBUG_ALWAYS, LOG_NOTICE, "tincd %s (%s %s) starting, debug level %d",
-			   VERSION, __DATE__, __TIME__, debug_level);
+			   VERSION, BUILD_DATE, BUILD_TIME, debug_level);
 
 	return true;
 }
diff --git a/src/tincctl.c b/src/tincctl.c
index 18fc05ac..fc21d42a 100644
--- a/src/tincctl.c
+++ b/src/tincctl.c
@@ -38,6 +38,7 @@
 #include "utils.h"
 #include "tincctl.h"
 #include "top.h"
+#include "version.h"
 
 #ifndef MSG_NOSIGNAL
 #define MSG_NOSIGNAL 0
@@ -85,7 +86,7 @@ static struct option const long_options[] = {
 
 static void version(void) {
 	printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE,
-		   VERSION, __DATE__, __TIME__, PROT_MAJOR, PROT_MINOR);
+		   VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR);
 	printf("Copyright (C) 1998-2012 Ivo Timmermans, Guus Sliepen and others.\n"
 			"See the AUTHORS file for a complete list.\n\n"
 			"tinc comes with ABSOLUTELY NO WARRANTY.  This is free software,\n"
diff --git a/src/tincd.c b/src/tincd.c
index 87c0b7d1..30a56782 100644
--- a/src/tincd.c
+++ b/src/tincd.c
@@ -57,6 +57,7 @@
 #include "protocol.h"
 #include "utils.h"
 #include "xalloc.h"
+#include "version.h"
 
 /* If nonzero, display usage information and exit. */
 static bool show_help = false;
@@ -319,7 +320,7 @@ int main(int argc, char **argv) {
 
 	if(show_version) {
 		printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE,
-			   VERSION, __DATE__, __TIME__, PROT_MAJOR, PROT_MINOR);
+			   VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR);
 		printf("Copyright (C) 1998-2014 Ivo Timmermans, Guus Sliepen and others.\n"
 				"See the AUTHORS file for a complete list.\n\n"
 				"tinc comes with ABSOLUTELY NO WARRANTY.  This is free software,\n"
diff --git a/src/version.c b/src/version.c
new file mode 100644
index 00000000..fc62c8a3
--- /dev/null
+++ b/src/version.c
@@ -0,0 +1,24 @@
+/*
+    version.c -- version information 
+    Copyright (C) 2014      Etienne Dechamps <etienne@edechamps.fr>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "version.h"
+
+/* This file is always rebuilt (even if there are no changes) so that the following is updated */
+const char* const BUILD_DATE = __DATE__;
+const char* const BUILD_TIME = __TIME__;
diff --git a/src/version.h b/src/version.h
new file mode 100644
index 00000000..d3e4a1f2
--- /dev/null
+++ b/src/version.h
@@ -0,0 +1,26 @@
+/*
+    version.h -- header for version.c
+    Copyright (C) 2014      Etienne Dechamps <etienne@edechamps.fr>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef __TINC_VERSION_H__
+#define __TINC_VERSION_H__
+
+extern const char* const BUILD_DATE;
+extern const char* const BUILD_TIME;
+
+#endif /* __TINC_VERSION_H__ */