Index: generic/src/mm/frame.c
===================================================================
--- generic/src/mm/frame.c	(revision feb1a4141fd0d63c75a526e5c9edb96d92157e55)
+++ generic/src/mm/frame.c	(revision e41157986022db46aa07c65eed5137097e06e616)
@@ -602,12 +602,8 @@
 link_t * zone_buddy_bisect(link_t * block) {
 	frame_t * frame_l, * frame_r;
-	zone_t * zone;
 	
 	frame_l = list_get_instance(block, frame_t, buddy_link);
 
-	zone = get_zone_by_frame(frame_l);
-	
-	frame_r = &zone->frames[FRAME_INDEX(zone, frame_l) + 1>>(frame_l->buddy_order-1)];
-
+	frame_r = (frame_t *) (&frame_l + (1>>frame_l->buddy_order-1));
 
 	return &frame_r->buddy_link;
@@ -624,13 +620,9 @@
 link_t * zone_buddy_coalesce(link_t * block_1, link_t * block_2) {
 	frame_t * frame1, * frame2;
-	zone_t * zone;
 	
 	frame1 = list_get_instance(block_1, frame_t, buddy_link);
 	frame2 = list_get_instance(block_2, frame_t, buddy_link);
 	
-	zone = get_zone_by_frame(frame1);
-	
-	return FRAME_INDEX(zone, frame1) < FRAME_INDEX(zone, frame2) ? block_1 : block_2;
-
+	return frame1 < frame2 ? block_1 : block_2;
 }
 
