diff --git a/src/eval.c b/src/eval.c
index c35def0..b8e6064 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -5683,9 +5683,9 @@
  * If the memory is allocated "tofree" is set to it, otherwise NULL.
  * "numbuf" is used for a number.
  * When "copyID" is not NULL replace recursive lists and dicts with "...".
- * When both "echo_style" and "dict_val" are FALSE, put quotes around stings as
- * "string()", otherwise does not put quotes around strings, as ":echo"
- * displays values.
+ * When both "echo_style" and "composite_val" are FALSE, put quotes around
+ * stings as "string()", otherwise does not put quotes around strings, as
+ * ":echo" displays values.
  * When "restore_copyID" is FALSE, repeated items in dictionaries and lists
  * are replaced with "...".
  * May return NULL.
@@ -5698,7 +5698,7 @@
     int		copyID,
     int		echo_style,
     int		restore_copyID,
-    int		dict_val)
+    int		composite_val)
 {
     static int	recurse = 0;
     char_u	*r = NULL;
@@ -5721,10 +5721,12 @@
     switch (tv->v_type)
     {
 	case VAR_STRING:
-	    if (echo_style && !dict_val)
+	    if (echo_style && !composite_val)
 	    {
 		*tofree = NULL;
-		r = get_tv_string_buf(tv, numbuf);
+		r = tv->vval.v_string;
+		if (r == NULL)
+		    r = (char_u *)"";
 	    }
 	    else
 	    {
@@ -5841,10 +5843,19 @@
 
 	case VAR_NUMBER:
 	case VAR_UNKNOWN:
+	    *tofree = NULL;
+	    r = get_tv_string_buf(tv, numbuf);
+	    break;
+
 	case VAR_JOB:
 	case VAR_CHANNEL:
 	    *tofree = NULL;
 	    r = get_tv_string_buf(tv, numbuf);
+	    if (composite_val)
+	    {
+		*tofree = string_quote(r, FALSE);
+		r = *tofree;
+	    }
 	    break;
 
 	case VAR_FLOAT:
diff --git a/src/list.c b/src/list.c
index 2fccbae..b593f71 100644
--- a/src/list.c
+++ b/src/list.c
@@ -740,7 +740,7 @@
     for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
     {
 	s = echo_string_core(&item->li_tv, &tofree, numbuf, copyID,
-					   echo_style, restore_copyID, FALSE);
+				      echo_style, restore_copyID, !echo_style);
 	if (s == NULL)
 	    return FAIL;
 
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 98bc758..8c14fa4 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -18,6 +18,9 @@
   let g:job = term_getjob(buf)
   call assert_equal(v:t_job, type(g:job))
 
+  let string = string({'job': term_getjob(buf)})
+  call assert_match("{'job': 'process \\d\\+ run'}", string)
+
   return buf
 endfunc
 
diff --git a/src/version.c b/src/version.c
index 3595c1a..d3b3215 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    867,
+/**/
     866,
 /**/
     865,
