diff -up evolution-data-server-3.12.11/libedataserver/e-time-utils.c.time-parse-am-pm evolution-data-server-3.12.11/libedataserver/e-time-utils.c
--- evolution-data-server-3.12.11/libedataserver/e-time-utils.c.time-parse-am-pm 2014-06-01 21:10:19.000000000 +0200
+++ evolution-data-server-3.12.11/libedataserver/e-time-utils.c 2015-07-10 16:24:54.918755056 +0200
@@ -1576,9 +1576,28 @@ static gboolean
locale_supports_12_hour_format (void)
{
struct tm tmp_tm = { 0 };
- gchar s[16];
+ gchar s[40];
+
+ /* Fill the struct tm with some sane values. */
+ tmp_tm.tm_year = 2000;
+ tmp_tm.tm_mon = 0;
+ tmp_tm.tm_mday = 1;
+ tmp_tm.tm_sec = 0;
+ tmp_tm.tm_isdst = 0;
+ tmp_tm.tm_hour = 1;
+ tmp_tm.tm_min = 0;
+ tmp_tm.tm_wday = 6;
+ tmp_tm.tm_yday = 6;
e_utf8_strftime (s, sizeof (s), "%p", &tmp_tm);
+
+ if (!s[0]) {
+ tmp_tm.tm_hour = 13;
+ tmp_tm.tm_min = 0;
+
+ e_utf8_strftime (s, sizeof (s), "%p", &tmp_tm);
+ }
+
return s[0] != '\0';
}