diff --git a/db.c b/db.c
index 707f57e2bfd3363087923911f4d247a7bb81b3d4..0e46604643ab5069543f6713db9961ff3d330165 100755
--- a/db.c
+++ b/db.c
@@ -529,6 +529,8 @@ static int manager_dbput(struct mansession *s, struct message *m)
 
 static int manager_dbget(struct mansession *s, struct message *m)
 {
+	char *id = astman_get_header(m,"ActionID");
+	char idText[256] = "";
 	char *family = astman_get_header(m, "Family");
 	char *key = astman_get_header(m, "Key");
 	char tmp[256];
@@ -543,16 +545,23 @@ static int manager_dbget(struct mansession *s, struct message *m)
 		return 0;
 	}
 
+	if (id && !ast_strlen_zero(id))
+		snprintf(idText, sizeof(idText) ,"ActionID: %s\r\n", id);
+
 	res = ast_db_get(family, key, tmp, sizeof(tmp));
 	if (res) {
 		astman_send_error(s, m, "Database entry not found");
 	} else {
 		astman_send_ack(s, m, "Result will follow");
+		ast_mutex_lock(&s->lock);
 		ast_cli(s->fd, "Event: DBGetResponse\r\n"
 				"Family: %s\r\n"
 				"Key: %s\r\n"
-				"Val: %s\r\n\r\n",
-				family, key, tmp);
+				"Val: %s\r\n"
+				"%s"
+				"\r\n",
+				family, key, tmp, idText);
+		ast_mutex_unlock(&s->lock);
 	}
 	return 0;
 }