diff --git a/src/datastructures.c b/src/datastructures.c
index af8477be36123a53506871827d4dae13d8c9002b..451afb94ec39932dfe1f8c58aa82c0777f73b011 100644
--- a/src/datastructures.c
+++ b/src/datastructures.c
@@ -52,14 +52,14 @@ HSlist* h_slist_copy(HSlist *slist) {
     h_slist_push(ret, head->elem);
     tail = ret->head;
     head = head->next;
-  }
-  while (head != NULL) {
-    // append head item to tail in a new node
-    HSlistNode *node = h_arena_malloc(slist->arena, sizeof(HSlistNode));
-    node->elem = head->elem;
-    node->next = NULL;
-    tail = tail->next = node;
-    head = head->next;
+    while (head != NULL) {
+      // append head item to tail in a new node
+      HSlistNode *node = h_arena_malloc(slist->arena, sizeof(HSlistNode));
+      node->elem = head->elem;
+      node->next = NULL;
+      tail = tail->next = node;
+      head = head->next;
+    }
   }
   return ret;
 }
diff --git a/tools/windows/hammer_lib_src_list b/tools/windows/hammer_lib_src_list
index 388f92fc99d25838074cb3737bb786d95dc7a7c4..793619ef0ecd5811509e070abb3ae0ebf445c0c9 100644
--- a/tools/windows/hammer_lib_src_list
+++ b/tools/windows/hammer_lib_src_list
@@ -3,7 +3,8 @@ allocator.c
 benchmark.c
 bitreader.c 
 bitwriter.c 
-cfgrammar.c 
+cfgrammar.c
+datastructures.c
 desugar.c 
 glue.c 
 hammer.c