diff --git a/CHANGES b/CHANGES
index f3ab90d2afc65205b2ce3fe43258986a13323a60..e36af4ac5bbb66383ecf4a9a078369ea083078df 100644
--- a/CHANGES
+++ b/CHANGES
@@ -106,6 +106,15 @@ res_musiconhold
    over the channel-set musicclass. This allows separate hold-music from
    application (e.g. Queue or Dial) specified music.
 
+
+CEL Backends
+------------------
+
+cel_pgsql
+------------------
+* Added a new option, 'usegmtime', which causes timestamps in CEL events
+  to be logged in GMT.
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
 ------------------------------------------------------------------------------
diff --git a/cel/cel_pgsql.c b/cel/cel_pgsql.c
index f9c098feda5016bd87b6232025a1697f463b9e1f..56a6069d45374b32f941e6f829a81eca5f89c237 100644
--- a/cel/cel_pgsql.c
+++ b/cel/cel_pgsql.c
@@ -72,6 +72,7 @@ static char *table;
 
 static int connected = 0;
 static int maxsize = 512, maxsize2 = 512;
+static int usegmtime = 0;
 
 /*! \brief show_user_def is off by default */
 #define CEL_SHOW_USERDEF_DEFAULT	0
@@ -166,7 +167,7 @@ static void pgsql_log(struct ast_event *event)
 
 	ast_mutex_lock(&pgsql_lock);
 
-	ast_localtime(&record.event_time, &tm, NULL);
+	ast_localtime(&record.event_time, &tm, usegmtime ? "GMT" : NULL);
 	ast_strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm);
 
 	if ((!connected) && pghostname && pgdbuser && pgpassword && pgdbname) {
@@ -215,7 +216,7 @@ static void pgsql_log(struct ast_event *event)
 				} else {
 					/* char, hopefully */
 					LENGTHEN_BUF2(31);
-					ast_localtime(&record.event_time, &tm, NULL);
+					ast_localtime(&record.event_time, &tm, usegmtime ? "GMT" : NULL);
 					ast_strftime(buf, sizeof(buf), DATE_FORMAT, &tm);
 					ast_str_append(&sql2, 0, "%s'%s'", SEP, buf);
 				}
@@ -515,6 +516,11 @@ static int process_my_load_module(struct ast_config *cfg)
 	if ((tmp = ast_variable_retrieve(cfg, "global", "show_user_defined"))) {
 		cel_show_user_def = ast_true(tmp) ? 1 : 0;
 	}
+	if ((tmp = ast_variable_retrieve(cfg, "global", "usegmtime"))) {
+		usegmtime = ast_true(tmp);
+	} else {
+		usegmtime = 0;
+	}
 	if (option_debug) {
 		if (ast_strlen_zero(pghostname)) {
 			ast_debug(3, "cel_pgsql: using default unix socket\n");
diff --git a/configs/samples/cel_pgsql.conf.sample b/configs/samples/cel_pgsql.conf.sample
index 2298b2ddc6f46f41cee96ea3b3813f133c78b370..30c789e4cca208be7af3cb9ce1da50599037a6f4 100644
--- a/configs/samples/cel_pgsql.conf.sample
+++ b/configs/samples/cel_pgsql.conf.sample
@@ -59,10 +59,13 @@
 ;
 ;show_user_defined=yes
 
+; Log date/time in GMT. The default of this option is 'no'.
+;usegmtime=yes
+
 ;hostname=localhost
 ;port=5432
 ;dbname=asterisk
 ;password=password
 ;user=postgres
 ;table=cel		;SQL table where CEL's will be inserted
-;appname=asterisk   ; Postgres application_name support (optional). Whitespace not allowed.
\ No newline at end of file
+;appname=asterisk   ; Postgres application_name support (optional). Whitespace not allowed.