diff --git a/src/lisp/lisp.c b/src/lisp/lisp.c
index e87b9d1..6ed3fb9 100644
--- a/src/lisp/lisp.c
+++ b/src/lisp/lisp.c
@@ -103,7 +103,7 @@
 bool isallowedchar(char c)
 {
 	return (c >= '#' && c <= '\'') || (c >= '*' && c <= '/') ||
-	       (c >= '>' && c <= '@');
+	       (c >= '<' && c <= '@');
 }
 
 bool issymstart(char c)
@@ -125,7 +125,6 @@
 
 	int size = 8;
 	struct alloc *a = malloc_aligned(size + sizeof(struct alloc));
-	add_this_alloc(a, SYMBOL_TAG);
 
 	char *s = (char *)(a + 1);
 
@@ -133,15 +132,15 @@
 
 	for (int i = 1;; i++)
 	{
+		if (i >= size)
+		{
+			size *= 2;
+			a = realloc_aligned(a, size + sizeof(struct alloc));
+			s = (char *)(a + 1);
+		}
+
 		if (issym(is->peek(is)))
 		{
-			if (i >= size)
-			{
-				size *= 2;
-				a = realloc_aligned(a, size + sizeof(struct alloc));
-				s = (char *)(a + 1);
-			}
-
 			s[i] = is->get(is);
 		}
 		else
@@ -150,6 +149,7 @@
 			*val = (value_t)s;
 			*val |= SYMBOL_TAG;
 
+			add_this_alloc(a, SYMBOL_TAG);
 			return true;
 		}
 	}
@@ -166,7 +166,6 @@
 	int size = 8;
 
 	struct alloc *a = malloc_aligned(size + sizeof(struct alloc));
-	add_this_alloc(a, STRING_TAG);
 
 	char *s = (char *)(a + 1);
 
@@ -209,6 +208,7 @@
 			*val = (value_t)s;
 			*val |= STRING_TAG;
 
+			add_this_alloc(a, STRING_TAG);
 			return true;
 		}
 	}
@@ -276,6 +276,8 @@
 
 	*val = readn(is);
 
+	skipws(is);
+
 	if (is->peek(is) != ')')
 	{
 		is->showpos(is, stderr);
