Index: test/mm/slab2/test.c
===================================================================
--- test/mm/slab2/test.c	(revision 4a5b2b0e821944b1ebbc89e16c5ac16be5881c04)
+++ test/mm/slab2/test.c	(revision 086a600fe7c9cab7730f6c6d5879feb9121926be)
@@ -34,4 +34,5 @@
 #include <panic.h>
 #include <mm/frame.h>
+#include <memstr.h>
 
 #define ITEM_SIZE 256
@@ -65,5 +66,6 @@
 			break;
 		}
-
+		memsetb((__address)data1, ITEM_SIZE, 0);
+		memsetb((__address)data2, ITEM_SIZE, 0);
 		*((void **)data1) = olddata1;
 		*((void **)data2) = olddata2;
@@ -89,4 +91,5 @@
 			panic("Incorrect memory size - use another test.");
 		}
+		memsetb((__address)data1, ITEM_SIZE, 0);
 		*((void **)data1) = olddata1;
 		olddata1 = data1;
@@ -98,13 +101,27 @@
 			break;
 		}
+		memsetb((__address)data1, ITEM_SIZE, 0);
 		*((void **)data1) = olddata1;
 		olddata1 = data1;
 	}
 	slab_print_list();
-	
+	printf("Deallocating cache1...");
+	while (olddata1) {
+		data1 = *((void **)olddata1);
+		slab_free(cache1, olddata1);
+		olddata1 = data1;
+	}
+	printf("done.\n");
+	slab_print_list();
+	slab_cache_destroy(cache1);
+	slab_cache_destroy(cache2);
 }
 
 void test(void)
 {
+	printf("Running reclaim test .. pass1\n");
 	totalmemtest();
+	printf("Running reclaim test .. pass2\n");
+	totalmemtest();
+	printf("Reclaim test OK.\n");
 }
