AC_DEFINE_UNQUOTED(DOVECOT_STRING, "$PACKAGE_STRING", [Dovecot string])
AC_DEFINE_UNQUOTED(DOVECOT_VERSION, "$PACKAGE_VERSION", [Dovecot version])
-AC_DEFINE([DOVECOT_VERSION_MAJOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\).\([0-9]+\)], [\1]), [Dovecot major version])
-AC_DEFINE([DOVECOT_VERSION_MINOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\).\([0-9]+\)], [\2]), [Dovecot minor version])
+AC_DEFINE([DOVECOT_VERSION_MAJOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\1]), [Dovecot major version])
+AC_DEFINE([DOVECOT_VERSION_MINOR], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\)], [\2]), [Dovecot minor version])
AC_DEFINE([DOVECOT_VERSION_MICRO], regexp(AC_PACKAGE_VERSION, [^\([0-9]+\)\.\([0-9]+\).\([0-9]+\)], [\3]), [Dovecot micro version])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+],[
+#if DOVECOT_VERSION_MICRO > 0
+#endif
+])], [], AC_DEFINE([DOVECOT_VERSION_MICRO], [0], [Dovecot micro version]))
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+],[
+#if DOVECOT_VERSION_MAJOR > 0 && DOVECOT_VERSION_MINOR > 0
+#endif
+])], [], AC_MSG_ERROR([Version macros broken]))
+
AC_CHECK_HEADERS(strings.h stdint.h unistd.h dirent.h malloc.h \
sys/uio.h sys/sysmacros.h sys/resource.h sys/select.h libgen.h \
sys/quota.h sys/fs/ufs_quota.h ufs/ufs/quota.h jfs/quota.h \