diff --git a/src/channel.c b/src/channel.c
index 05e2489..5133440 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1318,7 +1318,7 @@
     if (argvars[1].v_type != VAR_UNKNOWN
 	 && (argvars[1].v_type != VAR_DICT || argvars[1].vval.v_dict == NULL))
     {
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
 	return NULL;
     }
 
@@ -1330,7 +1330,7 @@
 	p = vim_strchr(address + 1, ']');
 	if (p == NULL || *++p != ':')
 	{
-	    semsg(_(e_invarg2), address);
+	    semsg(_(e_invalid_argument_str), address);
 	    return NULL;
 	}
     }
@@ -1339,14 +1339,14 @@
 	p = vim_strchr(address, ':');
 	if (p == NULL)
 	{
-	    semsg(_(e_invarg2), address);
+	    semsg(_(e_invalid_argument_str), address);
 	    return NULL;
 	}
     }
     port = strtol((char *)(p + 1), &rest, 10);
     if (*address == NUL || port <= 0 || port >= 65536 || *rest != NUL)
     {
-	semsg(_(e_invarg2), address);
+	semsg(_(e_invalid_argument_str), address);
 	return NULL;
     }
     if (is_ipv6)
@@ -1367,7 +1367,7 @@
 	goto theend;
     if (opt.jo_timeout < 0)
     {
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
 	goto theend;
     }
 
@@ -3833,7 +3833,7 @@
     }
     else
     {
-	semsg(_(e_invarg2), tv_get_string(tv));
+	semsg(_(e_invalid_argument_str), tv_get_string(tv));
 	return NULL;
     }
     if (channel != NULL && reading)
