diff --git a/Nasal/FMGC/winds.nas b/Nasal/FMGC/winds.nas
index e0319c23..2b7c6f81 100644
--- a/Nasal/FMGC/winds.nas
+++ b/Nasal/FMGC/winds.nas
@@ -287,9 +287,19 @@ var windController = {
 			canvas_mcdu.myCLBWIND[0]._setupPageWithData();
 		}
 		if (canvas_mcdu.myCRZWIND[1] != nil) {
+			# if (getprop("/FMGC/internal/tofrom-set") and size(fmgc.windController.nav_indicies[1]) > 0) {
+# 				canvas_mcdu.myCRZWIND[1].del();
+# 				canvas_mcdu.myCRZWIND[1] = nil;
+# 				canvas_mcdu.myCRZWIND[1] = windCRZPage.new(1, fmgc.flightPlanController.flightplans[2].getWP(me.nav_indicies[2][0]), 0);
+# 			}
 			canvas_mcdu.myCRZWIND[1]._setupPageWithData();
 		}
 		if (canvas_mcdu.myCRZWIND[0] != nil) {
+			# if (getprop("/FMGC/internal/tofrom-set") and size(fmgc.windController.nav_indicies[0]) > 0) {
+# 				canvas_mcdu.myCRZWIND[0].del();
+# 				canvas_mcdu.myCRZWIND[0] = nil;
+# 				canvas_mcdu.myCRZWIND[0] = windCRZPage.new(0, fmgc.flightPlanController.flightplans[2].getWP(me.nav_indicies[2][0]), 0);
+# 			}
 			canvas_mcdu.myCRZWIND[0]._setupPageWithData();
 		}
 		if (canvas_mcdu.myDESWIND[1] != nil) {
@@ -298,67 +308,5 @@ var windController = {
 		if (canvas_mcdu.myDESWIND[0] != nil) {
 			canvas_mcdu.myDESWIND[0]._setupPageWithData();
 		}
-	},
-
-	updateWind: func(n) {
-		if (n == 0) {
-			if (canvas_mcdu.myCLBWIND[0] != nil and canvas_mcdu.myCLBWIND[1] != nil) {
-				canvas_mcdu.myCLBWIND[1]._setupPageWithData();
-			}
- 			
-		if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
-			if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) == 0) {
-				canvas_mcdu.myCRZWIND[1].windList = canvas_mcdu.myCRZWIND[0].windList;
-			} else {
-				canvas_mcdu.myCRZWIND[1].del();
-				canvas_mcdu.myCRZWIND[1] = nil;
-				canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
-			}
-			canvas_mcdu.myCRZWIND[1]._setupPageWithData();
-		} else if (canvas_mcdu.myCRZWIND[1] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(0)) > 0) {
-			canvas_mcdu.myCRZWIND[1].del();
-			canvas_mcdu.myCRZWIND[1] = nil;
-			canvas_mcdu.myCRZWIND[1] = mcdu.windCRZPage.new(1, me.getWaypointList(2)[0], 0);
-			canvas_mcdu.myCRZWIND[1]._setupPageWithData();
-		}
-		
-		if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
-			canvas_mcdu.myDESWIND[1].windList = canvas_mcdu.myDESWIND[0].windList;
-			canvas_mcdu.myDESWIND[1]._setupPageWithData();
-		}
-		
-		if (canvas_mcdu.myHISTWIND[1] != nil) {
-			canvas_mcdu.myHISTWIND[1]._setupPageWithData();
-		}
-		} else {
-			if (canvas_mcdu.myCLBWIND[0] != nil and canvas_mcdu.myCLBWIND[1] != nil) {
-				canvas_mcdu.myCLBWIND[0]._setupPageWithData();
-			}
-		
-		if (canvas_mcdu.myCRZWIND[0] != nil and canvas_mcdu.myCRZWIND[1] != nil) {
-			if (!getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) == 0) {
-				canvas_mcdu.myCRZWIND[0].windList = canvas_mcdu.myCRZWIND[1].windList;
-			} else {
-				canvas_mcdu.myCRZWIND[0].del();
-				canvas_mcdu.myCRZWIND[0] = nil;
-				canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
-			}
-			canvas_mcdu.myCRZWIND[0]._setupPageWithData();
-		} else if (canvas_mcdu.myCRZWIND[0] != nil and getprop("/FMGC/internal/tofrom-set") and size(me.getWaypointList(1)) > 0) {
-			canvas_mcdu.myCRZWIND[0].del();
-			canvas_mcdu.myCRZWIND[0] = nil;
-			canvas_mcdu.myCRZWIND[0] = mcdu.windCRZPage.new(0, me.getWaypointList(2)[0], 0);
-			canvas_mcdu.myCRZWIND[0]._setupPageWithData();
-		}
-		
-		if (canvas_mcdu.myDESWIND[0] != nil and canvas_mcdu.myDESWIND[1] != nil) {
-			canvas_mcdu.myDESWIND[0].windList = canvas_mcdu.myDESWIND[1].windList;
-			canvas_mcdu.myDESWIND[0]._setupPageWithData();
-		}
-		
-		if (canvas_mcdu.myHISTWIND[0] != nil) {
-			canvas_mcdu.myHISTWIND[0]._setupPageWithData();
-		}
-		}
 	}
 };
diff --git a/Nasal/MCDU/MCDU.nas b/Nasal/MCDU/MCDU.nas
index 4b085354..ffa6486a 100644
--- a/Nasal/MCDU/MCDU.nas
+++ b/Nasal/MCDU/MCDU.nas
@@ -434,6 +434,14 @@ var lskbutton = func(btn, i) {
 			fuelPredInput("L6",i);
 		} else if (getprop("MCDU[" ~ i ~ "]/page") == "IRSINIT") {
 			initInputIRS("L6",i);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDCLB") {
+			canvas_mcdu.myCLBWIND[i].pushButtonLeft(6);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDCRZ") {
+			canvas_mcdu.myCRZWIND[i].pushButtonLeft(6);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDDES") {
+			canvas_mcdu.myDESWIND[i].pushButtonLeft(6);
+		#} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDHIST") {
+		#	canvas_mcdu.myHISTWIND[i].pushButtonRight(6);
 		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDHIST") {
 			if (canvas_mcdu.myCLBWIND[i] == nil) {
 				canvas_mcdu.myCLBWIND[i] = windCLBPage.new(i);
@@ -721,6 +729,14 @@ var rskbutton = func(btn, i) {
 			initInputA("R6",i);
 		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "IRSINIT") {
 			initInputIRS("R6",i);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDCLB") {
+			canvas_mcdu.myCLBWIND[i].pushButtonRight(6);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDCRZ") {
+			canvas_mcdu.myCRZWIND[i].pushButtonRight(6);
+		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDDES") {
+			canvas_mcdu.myDESWIND[i].pushButtonRight(6);
+		#} else if (getprop("/MCDU[" ~ i ~ "]/page") == "WINDHIST") {
+		#	canvas_mcdu.myHISTWIND[i].pushButtonRight(6);
 		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "PERFTO") {
 			perfTOInput("R6",i);
 		} else if (getprop("/MCDU[" ~ i ~ "]/page") == "PERFCLB") {
diff --git a/Nasal/MCDU/WINDCLB.nas b/Nasal/MCDU/WINDCLB.nas
index 175b9cfc..75449484 100644
--- a/Nasal/MCDU/WINDCLB.nas
+++ b/Nasal/MCDU/WINDCLB.nas
@@ -174,7 +174,19 @@ var windCLBPage = {
 		me.updateTmpy();
 	},
 	pushButtonLeft: func(index) {
-		if (me.items >= index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonLeft(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 0);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else if (me.items >= index) {
 			if (size(mcdu_scratchpad.scratchpads[me.computer].scratchpad) == 13) {
 				var winds = split("/", mcdu_scratchpad.scratchpads[me.computer].scratchpad);
 				if (size(winds[0]) == 3 and num(winds[0]) != nil and winds[0] >= 0 and winds[0] <= 360 and
@@ -223,5 +235,22 @@ var windCLBPage = {
 		} else {
 			mcdu_message(me.computer, "NOT ALLOWED");
 		}
+	},
+	pushButtonRight: func(index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonRight(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 1);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else {
+			mcdu_message(me.computer, "NOT ALLOWED");
+		}
 	}
 };
\ No newline at end of file
diff --git a/Nasal/MCDU/WINDCRZ.nas b/Nasal/MCDU/WINDCRZ.nas
index ac0f35e1..07120522 100644
--- a/Nasal/MCDU/WINDCRZ.nas
+++ b/Nasal/MCDU/WINDCRZ.nas
@@ -83,7 +83,7 @@ var windCRZPage = {
 				me.items = 1;
 			} else if (fmgc.windController.winds[computer_temp][me.match_location].wind2.altitude == "") {
 				me.items = 2;
-			} else if (fmgc.windController.crz_winds[computer_temp][me.match_location].wind3.altitude == "") {
+			} else if (fmgc.windController.winds[computer_temp][me.match_location].wind3.altitude == "") {
 				me.items = 3;
 			} else {
 				me.items = 4;
@@ -236,7 +236,19 @@ var windCRZPage = {
 		me.updateTmpy();
 	},
 	pushButtonLeft: func(index) {
-		if (me.items >= index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonLeft(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 0);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else if (me.items >= index) {
 			if (size(mcdu_scratchpad.scratchpads[me.computer].scratchpad) == 13) {
 				var winds = split("/", mcdu_scratchpad.scratchpads[me.computer].scratchpad);
 				if (size(winds[0]) == 3 and num(winds[0]) != nil and winds[0] >= 0 and winds[0] <= 360 and
@@ -310,6 +322,23 @@ var windCRZPage = {
 			mcdu_message(me.computer, "NOT ALLOWED");
 		}
 	},
+	pushButtonRight: func(index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonRight(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 1);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else {
+			mcdu_message(me.computer, "NOT ALLOWED");
+		}
+	},
 	pushButtonUp: func() {
 		var computer_temp = 2;
 		if (fmgc.flightPlanController.temporaryFlag[me.computer]) {
diff --git a/Nasal/MCDU/WINDDES.nas b/Nasal/MCDU/WINDDES.nas
index ef2ec73b..64ad3b91 100644
--- a/Nasal/MCDU/WINDDES.nas
+++ b/Nasal/MCDU/WINDDES.nas
@@ -176,7 +176,19 @@ var windDESPage = {
 		me.updateTmpy();
 	},
 	pushButtonLeft: func(index) {
-		if (me.items >= index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonLeft(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 0);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else if (me.items >= index) {
 			if (size(mcdu_scratchpad.scratchpads[me.computer].scratchpad) == 13) {
 				var winds = split("/", mcdu_scratchpad.scratchpads[me.computer].scratchpad);
 				if (size(winds[0]) == 3 and num(winds[0]) != nil and winds[0] >= 0 and winds[0] <= 360 and
@@ -225,5 +237,22 @@ var windDESPage = {
 		} else {
 			mcdu_message(me.computer, "NOT ALLOWED");
 		}
+	},
+	pushButtonRight: func(index) {
+		if (index == 6 and fmgc.flightPlanController.temporaryFlag[me.computer]) {
+			if (canvas_mcdu.myFpln[me.computer] != nil) {
+				canvas_mcdu.myFpln[me.computer].pushButtonRight(index);
+			} else {
+				fmgc.flightPlanController.destroyTemporaryFlightPlan(me.computer, 1);
+				# push update to fuel
+				if (getprop("/FMGC/internal/block-confirmed")) {
+					setprop("/FMGC/internal/fuel-calculating", 0);
+					setprop("/FMGC/internal/fuel-calculating", 1);
+				}
+			}
+			me.reload();
+		} else {
+			mcdu_message(me.computer, "NOT ALLOWED");
+		}
 	}
 };
\ No newline at end of file