diff --git a/libc3/list.c b/libc3/list.c
index e98b2c9..eb79024 100644
--- a/libc3/list.c
+++ b/libc3/list.c
@@ -65,7 +65,6 @@ s_list ** list_cast (const s_tag *tag, s_list **list)
s_list ** list_copy (const s_list **src, s_list **dest)
{
s_list **i;
- s_list *next;
const s_list *s;
assert(src);
assert(dest);
@@ -75,8 +74,7 @@ s_list ** list_copy (const s_list **src, s_list **dest)
while (s) {
*i = list_new(NULL, NULL);
tag_copy(&s->tag, &(*i)->tag);
- if ((next = list_next(s))) {
- s = next;
+ if ((s = list_next(s))) {
i = &(*i)->next.data.list;
}
else {
diff --git a/test/ic3/array.in b/test/ic3/array.in
index b4c9702..1771f72 100644
--- a/test/ic3/array.in
+++ b/test/ic3/array.in
@@ -108,6 +108,7 @@ l = (Integer) { 1000000000000000000000000000000001,
l[0]
l[1]
quote (List) { (1, 2), (3, 4) }
+(List) { (1, 2), (3, 4) }
m = (List) { (1, 2), (3, 4) }
m[0]
m[1]