diff --git a/src/blob.c b/src/blob.c
index 6b771fe..bba9989 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -168,7 +168,7 @@
 }
 
 /*
- * Convert a blob to a readable form: "[0x11,0x34]"
+ * Convert a blob to a readable form: "0z00112233.44556677.8899"
  */
     char_u *
 blob2string(blob_T *blob, char_u **tofree, char_u *numbuf)
@@ -179,20 +179,19 @@
     if (blob == NULL)
     {
 	*tofree = NULL;
-	return (char_u *)"[]";
+	return (char_u *)"0z";
     }
 
     // Store bytes in the growarray.
     ga_init2(&ga, 1, 4000);
-    ga_append(&ga, '[');
+    ga_concat(&ga, (char_u *)"0z");
     for (i = 0; i < blob_len(blob); i++)
     {
-	if (i > 0)
-	    ga_concat(&ga, (char_u *)",");
-	vim_snprintf((char *)numbuf, NUMBUFLEN, "0x%02X", (int)blob_get(blob, i));
+	if (i > 0 && (i & 3) == 0)
+	    ga_concat(&ga, (char_u *)".");
+	vim_snprintf((char *)numbuf, NUMBUFLEN, "%02X", (int)blob_get(blob, i));
 	ga_concat(&ga, numbuf);
     }
-    ga_append(&ga, ']');
     *tofree = ga.ga_data;
     return *tofree;
 }
@@ -207,24 +206,20 @@
     blob_T  *blob = blob_alloc();
     char_u  *s = str;
 
-    if (*s != '[')
+    if (s[0] != '0' || (s[1] != 'z' && s[1] != 'Z'))
 	goto failed;
-    s = skipwhite(s + 1);
-    while (*s != ']')
+    s += 2;
+    while (vim_isxdigit(*s))
     {
-	if (s[0] != '0' || s[1] != 'x'
-				 || !vim_isxdigit(s[2]) || !vim_isxdigit(s[3]))
+	if (!vim_isxdigit(s[1]))
 	    goto failed;
-	ga_append(&blob->bv_ga, (hex2nr(s[2]) << 4) + hex2nr(s[3]));
-	s += 4;
-	if (*s == ',')
-	    s = skipwhite(s + 1);
-	else if (*s != ']')
-	    goto failed;
+	ga_append(&blob->bv_ga, (hex2nr(s[0]) << 4) + hex2nr(s[1]));
+	s += 2;
+	if (*s == '.' && vim_isxdigit(s[1]))
+	    ++s;
     }
-    s = skipwhite(s + 1);
-    if (*s != NUL)
-	goto failed;  // text after final ']'
+    if (*skipwhite(s) != NUL)
+	goto failed;  // text after final digit
 
     ++blob->bv_refcount;
     return blob;
diff --git a/src/eval.c b/src/eval.c
index af1021b..b31ed35 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4258,6 +4258,8 @@
 			if (blob != NULL)
 			    ga_append(&blob->bv_ga,
 					 (hex2nr(*bp) << 4) + hex2nr(*(bp+1)));
+			if (bp[2] == '.' && vim_isxdigit(bp[3]))
+			    ++bp;
 		    }
 		    if (blob != NULL)
 			rettv_blob_set(rettv, blob);
diff --git a/src/testdir/test_blob.vim b/src/testdir/test_blob.vim
index d5f682f..1feab34 100644
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -26,6 +26,12 @@
   call assert_fails('let b = 0z12345', 'E973:')
 
   call assert_equal(0z, test_null_blob())
+
+  let b = 0z001122.33445566.778899.aabbcc.dd
+  call assert_equal(0z00112233445566778899aabbccdd, b)
+  call assert_fails('let b = 0z1.1')
+  call assert_fails('let b = 0z.')
+  call assert_fails('let b = 0z001122.')
 endfunc
 
 " assignment to a blob
@@ -91,10 +97,13 @@
 endfunc
 
 func Test_blob_to_string()
-  let b = 0zDEADBEEF
-  call assert_equal('[0xDE,0xAD,0xBE,0xEF]', string(b))
+  let b = 0z00112233445566778899aabbccdd
+  call assert_equal('0z00112233.44556677.8899AABB.CCDD', string(b))
+  call assert_equal(b, eval(string(b)))
+  call remove(b, 4, -1)
+  call assert_equal('0z00112233', string(b))
   call remove(b, 0, 3)
-  call assert_equal('[]', string(b))
+  call assert_equal('0z', string(b))
 endfunc
 
 func Test_blob_compare()
diff --git a/src/version.c b/src/version.c
index 152c34e..3f0e23b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -792,6 +792,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    765,
+/**/
     764,
 /**/
     763,
