diff --git a/src/kmeans.c b/src/kmeans.c
index 3632c4f236acfcac0073d84b6f01b96be046c883..6200cb0c7b19d211df774f411d53d8ac95da7c54 100644
--- a/src/kmeans.c
+++ b/src/kmeans.c
@@ -42,8 +42,12 @@ cluster_int_t** kmeans_init_clusters_int(const vector_int_t** points, const size
 			// check center is not already in clusters, although probability is extremely low...
 			valid = !is_vector_in_centers_int(center, (const cluster_int_t**) clusters, i);
 		}
+		cluster_destroy_int(clusters[i]);
 		clusters[i] = cluster_create_int(center);
 	}
+	// free
+	vector_destroy_int(min);
+	vector_destroy_int(max);
 	return clusters;
 }