diff --git a/src/if_lua.c b/src/if_lua.c
index 0d1d08e..35e9106 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -709,8 +709,7 @@
     {
 	const char *s = lua_tostring(L, 2);
 	if (strncmp(s, "add", 3) == 0
-		|| strncmp(s, "insert", 6) == 0
-		|| strncmp(s, "extend", 6) == 0)
+		|| strncmp(s, "insert", 6) == 0)
 	{
 	    lua_getmetatable(L, 1);
 	    lua_getfield(L, -1, s);
@@ -745,6 +744,7 @@
 	luaV_totypval(L, 3, &v);
 	clear_tv(&li->li_tv);
 	copy_tv(&v, &li->li_tv);
+	clear_tv(&v);
     }
     return 0;
 }
@@ -754,17 +754,17 @@
 {
     luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
     list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
-    listitem_T *li;
+    typval_T v;
     if (l->lv_lock)
 	luaL_error(L, "list is locked");
-    li = listitem_alloc();
-    if (li != NULL)
+    lua_settop(L, 2);
+    luaV_totypval(L, 2, &v);
+    if (list_append_tv(l, &v) == FAIL)
     {
-	typval_T v;
-	lua_settop(L, 2);
-	luaV_totypval(L, 2, &v);
-	list_append_tv(l, &v);
+	clear_tv(&v);
+	luaL_error(L, "Failed to add item to list");
     }
+    clear_tv(&v);
     lua_settop(L, 1);
     return 1;
 }
@@ -787,7 +787,12 @@
     }
     lua_settop(L, 2);
     luaV_totypval(L, 2, &v);
-    list_insert_tv(l, &v, li);
+    if (list_insert_tv(l, &v, li) == FAIL)
+    {
+	clear_tv(&v);
+	luaL_error(L, "Failed to add item to list");
+    }
+    clear_tv(&v);
     lua_settop(L, 1);
     return 1;
 }
@@ -908,6 +913,7 @@
 	typval_T v;
 	luaV_totypval(L, 3, &v);
 	copy_tv(&v, &di->di_tv);
+	clear_tv(&v);
     }
     return 0;
 }
@@ -1323,6 +1329,7 @@
     typval_T *tv = eval_expr((char_u *) luaL_checkstring(L, 1), NULL);
     if (tv == NULL) luaL_error(L, "invalid expression");
     luaV_pushtypval(L, tv);
+    free_tv(tv);
     return 1;
 }
 
diff --git a/src/testdir/test85.in b/src/testdir/test85.in
index a4c30d0..c5ca873 100644
--- a/src/testdir/test85.in
+++ b/src/testdir/test85.in
@@ -33,6 +33,49 @@
 :let res = "FAILED"
 :endif
 :call setline(search("^3"), "circular test " . res)
+
+:let l = []
+:lua l = vim.eval("l")
+:lua l:add(123)
+:lua l:add("abc")
+:lua l:add(vim.eval("[1, 2, 3]"))
+:lua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
+:lua l:insert(123)
+:lua l:insert("abc")
+:lua l:insert(vim.eval("[1, 2, 3]"))
+:lua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
+:lua l[0] = l[0]
+:lua l[1] = l[1]
+:lua l[2] = l[2]
+:lua l[3] = l[3]
+:lua l[0] = 123
+:lua l[1] = "abc"
+:lua l[2] = vim.eval("[1, 2, 3]")
+:lua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
+:lua l[3] = nil
+:lua l[2] = nil
+:lua l[1] = nil
+:lua l[0] = nil
+:lua l = nil
+:$put =string(l)
+
+:let d = {}
+:lua d = vim.eval("d")
+:lua d[0] = 123
+:lua d[1] = "abc"
+:lua d[2] = vim.eval("[1, 2, 3]")
+:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
+:lua d[4] = d[0]
+:lua d[5] = d[1]
+:lua d[6] = d[2]
+:lua d[7] = d[3]
+:lua d[3] = nil
+:lua d[2] = nil
+:lua d[1] = nil
+:lua d[0] = nil
+:lua d = nil
+:$put =string(d)
+
 :?^1?,$w! test.out
 :qa!
 ENDTEST
diff --git a/src/testdir/test85.ok b/src/testdir/test85.ok
index f8d2d31..4753483 100644
--- a/src/testdir/test85.ok
+++ b/src/testdir/test85.ok
@@ -3,3 +3,5 @@
 2 line 2
 dictionary with list OK
 circular test OK
+[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}]
+{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}
diff --git a/src/version.c b/src/version.c
index f7ee739..121923a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    896,
+/**/
     895,
 /**/
     894,
