diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 344dfdf..80b8a9c 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 9.1.  Last change: 2025 Feb 17
+*builtin.txt*	For Vim version 9.1.  Last change: 2025 Feb 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1309,10 +1309,14 @@
 		items:
 		    encoding	Decode the bytes in {blob} using this
 				encoding.  The value is a |String|.  See
-				|encoding-names| for the supported values.
+				|encoding-names| for the supported values
+				(plus the special value "none").
 							*E1515*
-		An error is given and an empty List is returned if
-		an invalid byte sequence is encountered in {blob},
+		When current 'encoding' is "utf-8", an error is given and an
+		empty List is returned if an invalid byte sequence is
+		encountered in {blob}.  To suppress this validation and get
+		potentially invalid string, set "encoding" in {options} to
+		"none".
 
 		Returns an empty List if blob is empty.
 
@@ -10645,7 +10649,8 @@
 
 		The argument {options} is a |Dict| and supports the following
 		items:
-		    encoding	Encode the characters using this encoding.
+		    encoding	Convert the characters using this encoding
+				before making the Blob.
 				The value is a |String|.  See |encoding-names|
 				for the supported values.
 
diff --git a/src/strings.c b/src/strings.c
index 5de3162..9e39c45 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1289,7 +1289,7 @@
     blob_T	*blob;
     int		blen;
     long	idx;
-    int		utf8_inuse = FALSE;
+    int		validate_utf8 = FALSE;
 
     if (check_for_blob_arg(argvars, 0) == FAIL
 	    || check_for_opt_dict_arg(argvars, 1) == FAIL)
@@ -1316,7 +1316,14 @@
     }
 
     if (STRCMP(p_enc, "utf-8") == 0 || STRCMP(p_enc, "utf8") == 0)
-	utf8_inuse = TRUE;
+	validate_utf8 = TRUE;
+
+    if (from_encoding != NULL && STRCMP(from_encoding, "none") == 0)
+    {
+	validate_utf8 = FALSE;
+	vim_free(from_encoding);
+	from_encoding = NULL;
+    }
 
     idx = 0;
     while (idx < blen)
@@ -1340,7 +1347,7 @@
 	    }
 	}
 
-	if (utf8_inuse)
+	if (validate_utf8)
 	{
 	    if (!utf_valid_string(converted_str, NULL))
 	    {
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index 8ecc3a6..6928cda 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -4446,6 +4446,9 @@
     call assert_equal(['a'], blob2str(0z61, test_null_dict()))
     call assert_equal(['a'], blob2str(0z61, {'encoding': test_null_string()}))
 
+    call assert_equal(["\x80"], blob2str(0z80, {'encoding': 'none'}))
+    call assert_equal(['a', "\x80"], blob2str(0z610A80, {'encoding': 'none'}))
+
     #" Invalid encoding
     call assert_fails("call blob2str(0z80)", "E1515: Unable to convert from 'utf-8' encoding")
     call assert_fails("call blob2str(0z610A80)", "E1515: Unable to convert from 'utf-8' encoding")
diff --git a/src/version.c b/src/version.c
index 07bede5..5652fc3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1144,
+/**/
     1143,
 /**/
     1142,
