diff --git a/Input/Keyboard/multikey.xml b/Input/Keyboard/multikey.xml
index 3181a811a..0e1affc3c 100644
--- a/Input/Keyboard/multikey.xml
+++ b/Input/Keyboard/multikey.xml
@@ -16,21 +16,6 @@
 		</script>
 	</nasal>
 
-	<key n="900">
-		<name>%d</name>
-		<desc>Execute nasal-console tab #%d</desc>
-		<exit/>
-		<binding>
-			<command>nasal</command>
-			<script>
-				fgcommand("nasal", props.Node.new({
-					module: "__nasal_console",
-					script: getprop("/sim/gui/dialogs/nasal-console/code[" ~ arg[0] ~ "]") or "",
-				}));
-			</script>
-		</binding>
-	</key>
-
 	<key n="58">
 		<name>:</name>
 		<desc>User command</desc>
@@ -354,7 +339,8 @@
 						var engines = props.globals.getNode("/controls/engines").getChildren("engine");
 						foreach (var e; engines) {
 							var node = e.getNode("mixture");
-							node.setValue(arg[0]);
+							if (node != nil)
+								node.setValue(arg[0]);
 						}
 					</script>
 				</binding>
@@ -373,7 +359,8 @@
 						var engines = props.globals.getNode("/controls/engines").getChildren("engine");
 						foreach (var e; engines) {
 							var node = e.getNode("propeller-pitch");
-							node.setValue(arg[0]);
+							if (node != nil)
+								node.setValue(arg[0]);
 						}
 					</script>
 				</binding>
@@ -392,12 +379,56 @@
 						var engines = props.globals.getNode("/controls/engines").getChildren("engine");
 						foreach (var e; engines) {
 							var node = e.getNode("throttle");
-							node.setValue(arg[0]);
+							if (node != nil)
+								node.setValue(arg[0]);
 						}
 					</script>
 				</binding>
 			</key>
 		</key>
+
+		<key n="900">
+			<name>%d</name>
+			<desc>Engine #%d</desc>
+			<key n="109">
+				<name>m</name>
+				<desc>Mixture (0.0 to 1.0)</desc>
+				<key n="901">
+					<name>%f</name>
+					<desc>Mixture = %.3f</desc>
+					<binding>
+						<command>nasal</command>
+						<script>setprop("/controls/engines/engine[" ~ arg[0] ~ "]/mixture", arg[1])</script>
+					</binding>
+				</key>
+			</key>
+
+			<key n="112">
+				<name>p</name>
+				<desc>Propeller pitch (0.0 to 1.0)</desc>
+				<key n="901">
+					<name>%f</name>
+					<desc>Propeller pitch = %.3f</desc>
+					<binding>
+						<command>nasal</command>
+						<script>setprop("/controls/engines/engine[" ~ arg[0] ~ "]/propeller-pitch", arg[1])</script>
+					</binding>
+				</key>
+			</key>
+
+			<key n="116">
+				<name>t</name>
+				<desc>Throttle (0.0 to 1.0)</desc>
+				<key n="901">
+					<name>%f</name>
+					<desc>Throttle = %.3f</desc>
+					<binding>
+						<command>nasal</command>
+						<script>setprop("/controls/engines/engine[" ~ arg[0] ~ "]/throttle", arg[1])</script>
+					</binding>
+				</key>
+			</key>
+		</key>
 	</key>
 
 	<!-- Controls -->
@@ -777,4 +808,19 @@
 			</binding>
 		</key>
 	</key>
+
+	<key n="900">
+		<name>%d</name>
+		<desc>Execute nasal-console tab #%d</desc>
+		<exit/>
+		<binding>
+			<command>nasal</command>
+			<script>
+				fgcommand("nasal", props.Node.new({
+					module: "__nasal_console",
+					script: getprop("/sim/gui/dialogs/nasal-console/code[" ~ arg[0] ~ "]") or "",
+				}));
+			</script>
+		</binding>
+	</key>
 </PropertyList>