diff --git a/configure.ac b/configure.ac
index 62bb6709..b07dd2dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -244,6 +244,7 @@ CC_CHECK_FLAGS_APPEND([WARN_CFLAGS],[CFLAGS],[ \
   -Wno-missing-field-initializers \
   -Wno-switch-enum \
   -Wno-unused-parameter \
+  -Wno-format-y2k \
   -Wold-style-definition \
   -Wpacked \
   -Wshadow \
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 1b70094c..2563164a 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -167,7 +167,8 @@ static char* terminal_screen_check_hyperlink   (TerminalScreen            *scree
                                                 GdkEvent                  *event);
 static void terminal_screen_check_extra (TerminalScreen *screen,
                                          GdkEvent       *event,
-                                         char           **number_info);
+                                         char           **number_info,
+                                         char           **timestamp_info);
 static char* terminal_screen_check_match       (TerminalScreen            *screen,
                                                 GdkEvent                  *event,
                                                 int                  *flavor);
@@ -1735,6 +1736,7 @@ terminal_screen_popup_info_unref (TerminalScreenPopupInfo *info)
   g_free (info->hyperlink);
   g_free (info->url);
   g_free (info->number_info);
+  g_free (info->timestamp_info);
   g_slice_free (TerminalScreenPopupInfo, info);
 }
 
@@ -1760,7 +1762,8 @@ terminal_screen_do_popup (TerminalScreen *screen,
                           char *hyperlink,
                           char *url,
                           int url_flavor,
-                          char *number_info)
+                          char *number_info,
+                          char *timestamp_info)
 {
   TerminalScreenPopupInfo *info;
 
@@ -1772,6 +1775,7 @@ terminal_screen_do_popup (TerminalScreen *screen,
   info->url = url; /* adopted */
   info->url_flavor = url_flavor;
   info->number_info = number_info; /* adopted */
+  info->timestamp_info = timestamp_info; /* adopted */
 
   g_signal_emit (screen, signals[SHOW_POPUP_MENU], 0, info);
   terminal_screen_popup_info_unref (info);
@@ -1788,13 +1792,14 @@ terminal_screen_button_press (GtkWidget      *widget,
   gs_free char *url = NULL;
   int url_flavor = 0;
   gs_free char *number_info = NULL;
+  gs_free char *timestamp_info = NULL;
   guint state;
 
   state = event->state & gtk_accelerator_get_default_mod_mask ();
 
   hyperlink = terminal_screen_check_hyperlink (screen, (GdkEvent*)event);
   url = terminal_screen_check_match (screen, (GdkEvent*)event, &url_flavor);
-  terminal_screen_check_extra (screen, (GdkEvent*)event, &number_info);
+  terminal_screen_check_extra (screen, (GdkEvent*)event, &number_info, &timestamp_info);
 
   if (hyperlink != NULL &&
       (event->button == 1 || event->button == 2) &&
@@ -1835,19 +1840,21 @@ terminal_screen_button_press (GtkWidget      *widget,
           if (button_press_event && button_press_event (widget, event))
             return TRUE;
 
-          terminal_screen_do_popup (screen, event, hyperlink, url, url_flavor, number_info);
+          terminal_screen_do_popup (screen, event, hyperlink, url, url_flavor, number_info, timestamp_info);
           hyperlink = NULL; /* adopted to the popup info */
           url = NULL; /* ditto */
           number_info = NULL; /* ditto */
+          timestamp_info = NULL; /* ditto */
           return TRUE;
         }
       else if (!(event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)))
         {
           /* do popup on shift+right-click */
-          terminal_screen_do_popup (screen, event, hyperlink, url, url_flavor, number_info);
+          terminal_screen_do_popup (screen, event, hyperlink, url, url_flavor, number_info, timestamp_info);
           hyperlink = NULL; /* adopted to the popup info */
           url = NULL; /* ditto */
           number_info = NULL; /* ditto */
+          timestamp_info = NULL; /* ditto */
           return TRUE;
         }
     }
@@ -2216,7 +2223,8 @@ terminal_screen_check_match (TerminalScreen *screen,
 static void
 terminal_screen_check_extra (TerminalScreen *screen,
                              GdkEvent       *event,
-                             char           **number_info)
+                             char           **number_info,
+                             char           **timestamp_info)
 {
   guint i;
   char **matches;
@@ -2244,6 +2252,7 @@ terminal_screen_check_extra (TerminalScreen *screen,
                   if (!flavor_number_found)
                     {
                       *number_info = terminal_util_number_info (matches[i]);
+                      *timestamp_info = terminal_util_timestamp_info (matches[i]);
                       flavor_number_found = TRUE;
                     }
                   g_free (matches[i]);
diff --git a/src/terminal-screen.h b/src/terminal-screen.h
index 8ea33786..df59b1a5 100644
--- a/src/terminal-screen.h
+++ b/src/terminal-screen.h
@@ -150,6 +150,7 @@ struct _TerminalScreenPopupInfo {
   TerminalURLFlavor url_flavor;
   char *hyperlink;
   char *number_info;
+  char *timestamp_info;
   guint button;
   guint state;
   guint32 timestamp;
diff --git a/src/terminal-util.c b/src/terminal-util.c
index a854e9cf..85c136e7 100644
--- a/src/terminal-util.c
+++ b/src/terminal-util.c
@@ -1093,6 +1093,49 @@ terminal_util_number_info (const char *str)
   return g_strdup_printf(hex ? "0x%2$s = %1$s%3$s" : "%s = 0x%s%s", decstr, hexstr, magnitudestr);
 }
 
+/**
+ * terminal_util_timestamp_info:
+ * @str: a dec or hex number as string
+ *
+ * Returns: (transfer full): Formatted localtime if @str is decimal and looks like a timestamp, or %NULL
+ */
+char *
+terminal_util_timestamp_info (const char *str)
+{
+  time_t num;
+  struct tm tm;
+  char *res = NULL;
+
+  /* Bail out on hex numbers */
+  if (str[1] == 'x' || str[1] == 'X') {
+    return NULL;
+  }
+
+  /* Deliberately not handle octal */
+  errno = 0;
+  num = strtoull(str, NULL, 10);
+  if (errno) {
+    return NULL;
+  }
+
+  /* Java uses Unix time in milliseconds. */
+  if (num >= 1000000000000 && num <= 1999999999999) {
+    num /= 1000;
+  }
+
+  /* Fun: use inclusive interval so you can right-click on these numbers
+   * and check the human-readable time in gnome-terminal.
+   * (They're Sep 9 2001 and May 18 2033 by the way.) */
+  if (num >= 1000000000 && num <= 1999999999) {
+    res = g_malloc(100);
+    // tzset(); ???
+    localtime_r (&num, &tm);
+    strftime (res, 100, "%c", &tm);
+  }
+
+  return res;
+}
+
 /**
  * terminal_util_uri_fixup:
  * @uri: The URI to verify and maybe fixup
diff --git a/src/terminal-util.h b/src/terminal-util.h
index a8a75475..5bef87ac 100644
--- a/src/terminal-util.h
+++ b/src/terminal-util.h
@@ -93,6 +93,7 @@ void terminal_g_settings_set_rgba_palette (GSettings      *settings,
 void terminal_util_bind_mnemonic_label_sensitivity (GtkWidget *widget);
 
 char *terminal_util_number_info (const char *str);
+char *terminal_util_timestamp_info (const char *str);
 
 char *terminal_util_uri_fixup (const char *uri,
                                GError **error);
diff --git a/src/terminal-window.c b/src/terminal-window.c
index 7a8953c5..3593b2c9 100644
--- a/src/terminal-window.c
+++ b/src/terminal-window.c
@@ -1734,6 +1734,13 @@ screen_show_popup_menu_cb (TerminalScreen *screen,
     g_menu_append_item (section3, item3);
     g_menu_append_section (menu, NULL, G_MENU_MODEL (section3));
   }
+  if (info->timestamp_info != NULL) {
+    gs_unref_object GMenu *section4 = g_menu_new ();
+    /* Non-existent action will make this item insensitive */
+    gs_unref_object GMenuItem *item4 = g_menu_item_new (info->timestamp_info, "win.notexist");
+    g_menu_append_item (section4, item4);
+    g_menu_append_section (menu, NULL, G_MENU_MODEL (section4));
+  }
 
   /* Clipboard section */
   gs_unref_object GMenu *section4 = g_menu_new ();
