patch 7.4.1623
Problem:    All Channels share the message ID, it keeps getting bigger.
Solution:   Use a message ID per channel.
diff --git a/src/channel.c b/src/channel.c
index 7fe68d5..15c7c74 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -2295,17 +2295,6 @@
 }
 
 /*
- * Return a unique ID to be used in a message.
- */
-    int
-channel_get_id(void)
-{
-    static int next_id = 1;
-
-    return next_id++;
-}
-
-/*
  * Read from channel "channel" for as long as there is something to read.
  * "part" is PART_SOCK, PART_OUT or PART_ERR.
  * The data is put in the read queue.
@@ -2787,7 +2776,7 @@
 	return;
     }
 
-    id = channel_get_id();
+    id = ++channel->ch_last_msg_id;
     text = json_encode_nr_expr(id, &argvars[1],
 					    ch_mode == MODE_JS ? JSON_JS : 0);
     if (text == NULL)
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index be11a3a..b98fb58 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -24,10 +24,9 @@
 char_u *channel_peek(channel_T *channel, int part);
 void channel_clear(channel_T *channel);
 void channel_free_all(void);
-int channel_get_id(void);
 void channel_read(channel_T *channel, int part, char *func);
 char_u *channel_read_block(channel_T *channel, int part, int timeout);
-int channel_read_json_block(channel_T *channel, int part, int timeout, int id, typval_T **rettv);
+int channel_read_json_block(channel_T *channel, int part, int timeout_arg, int id, typval_T **rettv);
 void common_channel_read(typval_T *argvars, typval_T *rettv, int raw);
 channel_T *channel_fd2channel(sock_T fd, int *partp);
 void channel_handle_events(void);
diff --git a/src/structs.h b/src/structs.h
index 470beff..85223a0 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1380,6 +1380,7 @@
     channel_T	*ch_prev;
 
     int		ch_id;		/* ID of the channel */
+    int		ch_last_msg_id;	/* ID of the last message */
 
     chanpart_T	ch_part[4];	/* info for socket, out, err and in */
 
diff --git a/src/version.c b/src/version.c
index 8d4fee4..d727703 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1623,
+/**/
     1622,
 /**/
     1621,