diff --git a/src/kernel/alloc.c b/src/kernel/alloc.c
index d08e543..4edc791 100644
--- a/src/kernel/alloc.c
+++ b/src/kernel/alloc.c
@@ -1,9 +1,9 @@
 #include "alloc.h"
+#include "io.h"
 #include "kheap.h"
 #include "kint.h"
 #include "log.h"
 #include "paging.h"
-#include "io.h"
 
 extern uint end;
 static size_t palloc_base = (size_t)&end;
@@ -139,8 +139,6 @@
 
 void free(void *mem)
 {
-	// TODO: expand memory
-	
 	if (!mem)
 		return; // freeing NULL ptr
 
@@ -152,14 +150,43 @@
 		kpanic("Freeing memory not allocated with malloc()");
 	}
 
-	base->allocated = false;
+	// Check free block before this one
+
+	struct heap_alloc_footer *prev_f =
+		(struct heap_alloc_footer *)((size_t)mem - HEADER_SIZE - FOOTER_SIZE);
+
+	// Header of block before this one
+	struct heap_alloc_header *prev_h =
+		(struct heap_alloc_header *)((size_t)prev_f - prev_f->size + FOOTER_SIZE);
+
+	// Header of block after this one
+	struct heap_alloc_header *next_h =
+		(struct heap_alloc_header *)((size_t)mem - HEADER_SIZE + base->size);
+
+	size_t size = base->size;
+	size_t start = (size_t)base;
+
+	if (prev_h->magic == HEAP_MAGIC && !prev_h->allocated)
+	{
+		size += prev_h->size;
+		start = (size_t)prev_h;
+	}
+	if (next_h->magic == HEAP_MAGIC && !next_h->allocated)
+	{
+		size += next_h->size;
+	}
+
+	struct heap_alloc_header *h = (struct heap_alloc_header *)start;
+	h->allocated = false;
+	h->magic = HEAP_MAGIC;
+	h->size = size;
+
 	// Add entry into heap
 
-	struct heap_entry entry =
-	{
-		.key = base->size,
-		.address = (size_t)base,
+	struct heap_entry entry = {
+		.key = size,
+		.address = start,
 	};
-	
+
 	heap_insert(&heap, entry);
 }
