diff --git a/src/kmeans.c b/src/kmeans.c
index 348c08fcecd4e97e1c16aaf30675839decdf0950..3632c4f236acfcac0073d84b6f01b96be046c883 100644
--- a/src/kmeans.c
+++ b/src/kmeans.c
@@ -86,8 +86,12 @@ cluster_fpt_t** kmeans_init_clusters_fpt(const vector_fpt_t** points, const size
 			// check center is not already in clusters, although probability is extremely low...
 			valid = !is_vector_in_centers_fpt(center, (const cluster_fpt_t**) clusters, i);
 		}
+		cluster_destroy_fpt(clusters[i]);
 		clusters[i] = cluster_create_fpt(center);
 	}
+	// free
+	vector_destroy_fpt(min);
+	vector_destroy_fpt(max);
 	return clusters;
 }