patch 7.4.1858
Problem:    When a channel writes to a buffer it doesn't find a buffer by the
            short name but re-uses it anyway.
Solution:   Find buffer also by the short name.
diff --git a/src/channel.c b/src/channel.c
index 973d234..b1f7f1a 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1079,11 +1079,15 @@
     buf_T *save_curbuf = curbuf;
 
     if (name != NULL && *name != NUL)
+    {
 	buf = buflist_findname(name);
+	if (buf == NULL)
+	    buf = buflist_findname_exp(name);
+    }
     if (buf == NULL)
     {
 	buf = buflist_new(name == NULL || *name == NUL ? NULL : name,
-					       NULL, (linenr_T)0, BLN_LISTED);
+				     NULL, (linenr_T)0, BLN_LISTED | BLN_NEW);
 	if (buf == NULL)
 	    return NULL;
 	buf_copy_options(buf, BCO_ENTER);