Finish stack walking, mark+sweep for GC
diff --git a/src/lisp/lisp.c b/src/lisp/lisp.c
index 50da78a..a015d4e 100644
--- a/src/lisp/lisp.c
+++ b/src/lisp/lisp.c
@@ -33,13 +33,14 @@
 	c->car = car;
 	c->cdr = cdr;
 
-	item->alloc.type_tag = T_CONS;
+	item->alloc.type_tag = CONS_TAG;
 
 	if (last_a)
 	{
 		item->alloc.prev = last_a;
 		last_a->next = item;
 		item->alloc.next = NULL;
+		last_a = item;
 	}
 	else
 	{