diff --git a/NHF/main.cpp b/NHF/main.cpp
index 5cfadafb11994c8abc3bcf0bb107417707ab86c8..efa44ac7cbb760c7e49a32c7af51b872d6d32d9e 100644
--- a/NHF/main.cpp
+++ b/NHF/main.cpp
@@ -9,11 +9,15 @@ int main()
 {
 	heap mem(20);
 	cout<<mem;
-	cout<<mem.allocate(5)<<endl;
-	cout<<mem.allocate(5)<<endl;
-	cout<<mem.allocate(5)<<endl;
+	cout<<mem.allocate(5)<<endl;///0
+	cout<<mem.allocate(2)<<endl;///5
+	cout<<mem.allocate(3)<<endl;///7
+	cout<<mem.allocate(5)<<endl;///10
 	cout<<mem;
 	mem.free(5);
+	mem.free(10);
+	cout<<mem;
+	mem.free(7);
 	cout<<mem;
 	return 0;
 }
diff --git a/NHF/src/heap.cpp b/NHF/src/heap.cpp
index c29e9d8f61042f86c3c10ad614a8a84c94fb4590..283dfacd36527fc644d8cf9fcdd831953c0f2265 100644
--- a/NHF/src/heap.cpp
+++ b/NHF/src/heap.cpp
@@ -74,10 +74,29 @@ void heap::free(const memnum pid)
 	/*
 	 * Meg kell vizsgálni, hogy a kettő közül melyik telítetlen,
 	 * majd a kiválasztott blokk legelejét beállítani egy new_empty_block_size értékére.
+	 *
+	 * "Jobbról balra" haladunk, mert így minden helyen csak egyszer kell vizsgálódni,
+	 * utána pedig rögtön el lehet végezni a szükséges műveleteket is.
 	*/
+	memnum new_empty_block_size=blocks[pid].block_size;
+	if(!blocks[after].filled)
+	{
+		//Ha az utána lévő blokk üres, akkor annak a méretét is hozzá kell adni az új mérethez
+		new_empty_block_size+=blocks[after].block_size;
+		//Mivel mostmár nem ez a byte lesz az új blokk első byte-ja , így resetelni kell.
+		blocks[after].reset();
+	}
 	if(!blocks[before].filled)//ha előtte is van üres memóroaterület
 	{
-
+		new_empty_block_size+=blocks[before].block_size;
+		//ha előtte is van új blokk, akkor az lesz az új egybefüggő blokk eleje, tehát a jelenlegi byte-ot resetelni kell
+		blocks[pid].reset();
+		//most pedig az eredeti előtt lévő blokkot kell felparaméterezni az eddig számolt adatokkal
+		blocks[before].set(false,new_empty_block_size);
+	}
+	else//ez az az eset, amikor előtte BIZTOS NINCS, utána pedig vagy van vagy nincs üres blokk
+	{
+        blocks[pid].set(false,new_empty_block_size);
 	}
 }