diff --git a/src/schedule.c b/src/schedule.c
index d80ba69080fe3c42848dde1ed57969acbbab8b25..e0b0792482d704bdc7d2d0512df54ee47ed9f137 100644
--- a/src/schedule.c
+++ b/src/schedule.c
@@ -114,8 +114,7 @@ void delete_schedule(struct schedule_t * S) {
 	for(int i = 0; i < S->num_machines; i++){
 		delete_list(S->schedule[i], 1);
 	}
-	delete_list(S->num_machines, 1);
-	delete_list(S, 1);
+	free(S->schedule);
 }
 
 // Pour le format du fichier à créer, regardez dans la présentation du cours.
@@ -125,7 +124,7 @@ void save_schedule(struct schedule_t * S, char * filename) {
 	if (fp == NULL) 
 	{
 		printf("Erreur lors de l'ouverture pour écriture du fichier %s\n", filename);
-		return NULL;
+		return;
 	}
 	int num = get_num_machines(S);
 	fprintf(fp, "%d\n", num);
@@ -133,13 +132,14 @@ void save_schedule(struct schedule_t * S, char * filename) {
 	{
 		fprintf(fp, "M%d\n", i);
 		struct list_t* list = get_schedule_of_machine(S, i);
-		struct schedule_node_t* walk = get_list_head(list);
+		struct list_node_t* walk = get_list_head(list);
 		while (walk)
 		{
-			fprintf(fp, "%d %d %s", 
-				get_schedule_node_begin_time(walk), 
-				get_schedule_node_end_time(walk), 
-				get_task_id(get_schedule_node_task(walk))
+			struct schedule_node_t* node = get_list_node_data(walk);
+			fprintf(fp, "%ld %ld %s", 
+				get_schedule_node_begin_time(node), 
+				get_schedule_node_end_time(node), 
+				get_task_id(get_schedule_node_task(node))
 			);
 			walk = get_successor(walk);
 		}