diff --git a/src/evalvars.c b/src/evalvars.c
index ebfc42b..9952ffc 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -2662,6 +2662,12 @@
 		if (tv->vval.v_list != NULL)
 		    ++tv->vval.v_list->lv_refcount;
 	    }
+	    else if (tv->v_type == VAR_BLOB && tv->vval.v_blob == NULL)
+	    {
+		tv->vval.v_blob = blob_alloc();
+		if (tv->vval.v_blob != NULL)
+		    ++tv->vval.v_blob->bv_refcount;
+	    }
 	    copy_tv(tv, rettv);
 	}
     }
diff --git a/src/list.c b/src/list.c
index 56b2188..988b2d9 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2412,22 +2412,33 @@
     void
 f_add(typval_T *argvars, typval_T *rettv)
 {
-    list_T	*l;
-    blob_T	*b;
-
     rettv->vval.v_number = 1; // Default: Failed
     if (argvars[0].v_type == VAR_LIST)
     {
-	if ((l = argvars[0].vval.v_list) != NULL
-		&& !value_check_lock(l->lv_lock,
-					 (char_u *)N_("add() argument"), TRUE)
+	list_T	*l = argvars[0].vval.v_list;
+
+	if (l == NULL)
+	{
+	    if (in_vim9script())
+		emsg(_(e_cannot_add_to_null_list));
+	}
+	else if (!value_check_lock(l->lv_lock,
+					  (char_u *)N_("add() argument"), TRUE)
 		&& list_append_tv(l, &argvars[1]) == OK)
+	{
 	    copy_tv(&argvars[0], rettv);
+	}
     }
     else if (argvars[0].v_type == VAR_BLOB)
     {
-	if ((b = argvars[0].vval.v_blob) != NULL
-		&& !value_check_lock(b->bv_lock,
+	blob_T	*b = argvars[0].vval.v_blob;
+
+	if (b == NULL)
+	{
+	    if (in_vim9script())
+		emsg(_(e_cannot_add_to_null_blob));
+	}
+	else if (!value_check_lock(b->bv_lock,
 					 (char_u *)N_("add() argument"), TRUE))
 	{
 	    int		error = FALSE;
diff --git a/src/testdir/test_blob.vim b/src/testdir/test_blob.vim
index fa482b4..f54d773 100644
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -316,27 +316,59 @@
 endfunc
 
 func Test_blob_concatenate()
-  let b = 0z0011
-  let b += 0z2233
-  call assert_equal(0z00112233, b)
+  let lines =<< trim END
+      VAR b = 0z0011
+      LET b += 0z2233
+      call assert_equal(0z00112233, b)
 
-  call assert_fails('let b += "a"')
-  call assert_fails('let b += 88')
+      LET b = 0zDEAD + 0zBEEF
+      call assert_equal(0zDEADBEEF, b)
+  END
+  call CheckLegacyAndVim9Success(lines)
 
-  let b = 0zDEAD + 0zBEEF
-  call assert_equal(0zDEADBEEF, b)
+  let lines =<< trim END
+      VAR b = 0z0011
+      LET b += "a"
+  END
+  call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1012:', 'E734:'])
+
+  let lines =<< trim END
+      VAR b = 0z0011
+      LET b += 88
+  END
+  call CheckLegacyAndVim9Failure(lines, ['E734:', 'E1012:', 'E734:'])
 endfunc
 
 func Test_blob_add()
+  let lines =<< trim END
+      VAR b = 0z0011
+      call add(b, 0x22)
+      call assert_equal(0z001122, b)
+  END
+  call CheckLegacyAndVim9Success(lines)
+
+  " Only works in legacy script
   let b = 0z0011
-  call add(b, 0x22)
-  call assert_equal(0z001122, b)
   call add(b, '51')
-  call assert_equal(0z00112233, b)
+  call assert_equal(0z001133, b)
   call assert_equal(1, add(test_null_blob(), 0x22))
 
-  call assert_fails('call add(b, [9])', 'E745:')
-  call assert_fails('call add("", 0x01)', 'E897:')
+  let lines =<< trim END
+      VAR b = 0z0011
+      call add(b, [9])
+  END
+  call CheckLegacyAndVim9Failure(lines, ['E745:', 'E1012:', 'E745:'])
+
+  let lines =<< trim END
+      VAR b = 0z0011
+      call add("", 0x01)
+  END
+  call CheckLegacyAndVim9Failure(lines, 'E897:')
+
+  let lines =<< trim END
+      add(test_null_blob(), 0x22)
+  END
+  call CheckDefExecAndScriptFailure(lines, 'E1131:')
 endfunc
 
 func Test_blob_empty()
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 5c13d51..bf15a41 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -87,10 +87,23 @@
   CheckDefFailure(lines, 'E1012:', 2)
 
   lines =<< trim END
+      add(test_null_list(), 123)
+  END
+  CheckDefExecAndScriptFailure(lines, 'E1130:', 1)
+
+  lines =<< trim END
       var l: list<number> = test_null_list()
       add(l, 123)
   END
   CheckDefExecFailure(lines, 'E1130:', 2)
+
+  # Getting variable with NULL list allocates a new list at script level
+  lines =<< trim END
+      vim9script
+      var l: list<number> = test_null_list()
+      add(l, 123)
+  END
+  CheckScriptSuccess(lines)
 enddef
 
 def Test_add_blob()
@@ -109,10 +122,23 @@
   CheckDefFailure(lines, 'E1012:', 2)
 
   lines =<< trim END
+      add(test_null_blob(), 123)
+  END
+  CheckDefExecAndScriptFailure(lines, 'E1131:', 1)
+
+  lines =<< trim END
       var b: blob = test_null_blob()
       add(b, 123)
   END
   CheckDefExecFailure(lines, 'E1131:', 2)
+
+  # Getting variable with NULL blob allocates a new blob at script level
+  lines =<< trim END
+      vim9script
+      var b: blob = test_null_blob()
+      add(b, 123)
+  END
+  CheckScriptSuccess(lines)
 enddef
 
 def Test_append()
diff --git a/src/version.c b/src/version.c
index c3e2ea8..6216faf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2781,
+/**/
     2780,
 /**/
     2779,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 4e1af4e..60b58f9 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1020,6 +1020,10 @@
 	    if (tv->vval.v_dict == NULL)
 		(void)rettv_dict_alloc(tv);
 	    break;
+	case VAR_BLOB:
+	    if (tv->vval.v_blob == NULL)
+		(void)rettv_blob_alloc(tv);
+	    break;
 	default:
 	    break;
     }
