Index: kernel/generic/src/sysinfo/stats.c
===================================================================
--- kernel/generic/src/sysinfo/stats.c	(revision aab5e46888d1e1a3843c6928a153569c75281ee1)
+++ kernel/generic/src/sysinfo/stats.c	(revision 947ab77e1138e5b43ed8d4e74ae82a491381bfec)
@@ -145,17 +145,13 @@
 	size_t pages = 0;
 
-	/* Walk the B+ tree and count pages */
-	list_foreach(as->as_area_btree.leaf_list, leaf_link, btree_node_t,
-	    node) {
-		unsigned int i;
-		for (i = 0; i < node->keys; i++) {
-			as_area_t *area = node->value[i];
-
-			if (mutex_trylock(&area->lock) != EOK)
-				continue;
-
-			pages += area->pages;
-			mutex_unlock(&area->lock);
-		}
+	/* Walk areas in the address space and count pages */
+	as_area_t *area = as_area_first(as);
+	while (area != NULL) {
+		if (mutex_trylock(&area->lock) != EOK)
+			continue;
+
+		pages += area->pages;
+		mutex_unlock(&area->lock);
+		area = as_area_next(area);
 	}
 
@@ -186,16 +182,13 @@
 	size_t pages = 0;
 
-	/* Walk the B+ tree and count pages */
-	list_foreach(as->as_area_btree.leaf_list, leaf_link, btree_node_t, node) {
-		unsigned int i;
-		for (i = 0; i < node->keys; i++) {
-			as_area_t *area = node->value[i];
-
-			if (mutex_trylock(&area->lock) != EOK)
-				continue;
-
-			pages += area->resident;
-			mutex_unlock(&area->lock);
-		}
+	/* Walk areas in the address space and count pages */
+	as_area_t *area = as_area_first(as);
+	while (area != NULL) {
+		if (mutex_trylock(&area->lock) != EOK)
+			continue;
+
+		pages += area->resident;
+		mutex_unlock(&area->lock);
+		area = as_area_next(area);
 	}
 
