diff --git a/src/channel.c b/src/channel.c
index 50028c8..1c93b6c 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1317,7 +1317,7 @@
     /* Need to make a copy to be able to append a NL. */
     if ((p = alloc(len + 2)) == NULL)
 	return;
-    STRCPY(p, line);
+    memcpy((char *)p, (char *)line, len);
     p[len] = NL;
     p[len + 1] = NUL;
     channel_send(channel, PART_IN, p, "write_buf_line()");
@@ -1616,7 +1616,7 @@
 {
     readq_T *head = &channel->ch_part[part].ch_head;
     readq_T *node = head->rq_next;
-    long_u  len = 1;
+    long_u  len = 0;
     char_u  *res;
     char_u  *p;
 
@@ -1627,7 +1627,7 @@
     /* Concatenate everything into one buffer. */
     for (node = head->rq_next; node != NULL; node = node->rq_next)
 	len += node->rq_buflen;
-    res = lalloc(len, TRUE);
+    res = lalloc(len + 1, TRUE);
     if (res == NULL)
 	return NULL;
     p = res;
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 9d68a14..8679a16 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -1018,6 +1018,28 @@
   call job_stop(job)
 endfunc
 
+func Test_pipe_to_buffer_raw()
+  if !has('job')
+    return
+  endif
+  call ch_log('Test_raw_pipe_to_buffer()')
+  let options = {'out_mode': 'raw', 'out_io': 'buffer', 'out_name': 'testout'}
+  split testout
+  let job = job_start([s:python, '-c', 
+        \ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
+  call assert_equal("run", job_status(job))
+  call s:waitFor('len(join(getline(2,line("$")),"") >= 10000')
+  try
+    for line in getline(2, '$')
+      let line = substitute(line, '^\.*', '', '')
+      call assert_equal('', line)
+    endfor
+  finally
+    call job_stop(job)
+    bwipe!
+  endtry
+endfunc
+
 func Test_reuse_channel()
   if !has('job')
     return
diff --git a/src/version.c b/src/version.c
index 087c2d8..8501997 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1965,
+/**/
     1964,
 /**/
     1963,
