diff --git a/Environment/interpolator.xml b/Environment/interpolator.xml
index 400c08b86..04f942d57 100644
--- a/Environment/interpolator.xml
+++ b/Environment/interpolator.xml
@@ -126,4 +126,36 @@
     <filter-time>5</filter-time>
   </filter>
 
+  <filter>
+    <name>EnvironmentInterpolator:turbulence-magnitude</name>
+    <enable>
+      <condition>
+        <property>/environment/config/enabled</property>
+      </condition>
+    </enable>
+    <input>
+      <condition>
+        <property>/environment/config/presets/turbulence-magnitude-norm-override</property>
+      </condition>
+      <property>/environment/config/presets/turbulence-magnitude-norm-override</property>
+    </input>
+    <input>/environment/config/interpolated/turbulence/magnitude-norm</input>
+    <output>/environment/turbulence/magnitude-norm</output>
+    <type>exponential</type>
+    <filter-time>1</filter-time>
+  </filter>
+
+  <filter>
+    <name>EnvironmentInterpolator:turbulence-rate</name>
+    <enable>
+      <condition>
+        <property>/environment/config/enabled</property>
+      </condition>
+    </enable>
+    <input>/environment/config/interpolated/turbulence/rate-hz</input>
+    <output>/environment/turbulence/rate-hz</output>
+    <type>exponential</type>
+    <filter-time>1</filter-time>
+  </filter>
+
 </PropertyList>
diff --git a/Textures/Runway/pa_stopway.png b/Textures/Runway/pa_stopway.png
new file mode 100644
index 000000000..b72357fe3
Binary files /dev/null and b/Textures/Runway/pa_stopway.png differ
diff --git a/Textures/Runway/pc_stopway.png b/Textures/Runway/pc_stopway.png
new file mode 100644
index 000000000..4602625f8
Binary files /dev/null and b/Textures/Runway/pc_stopway.png differ
diff --git a/gui/dialogs/route-manager.xml b/gui/dialogs/route-manager.xml
index 5510ec147..ed72e6310 100644
--- a/gui/dialogs/route-manager.xml
+++ b/gui/dialogs/route-manager.xml
@@ -39,6 +39,7 @@ command interface /autopilot/route-manager/input:
 
             var clear = func {
                 cmd.setValue("@clear");
+                selection.setIntValue(-1);
             }
 
             var insert = func {
diff --git a/gui/dialogs/weather.xml b/gui/dialogs/weather.xml
index d8594ab87..471dde092 100644
--- a/gui/dialogs/weather.xml
+++ b/gui/dialogs/weather.xml
@@ -578,6 +578,12 @@
               <label>Dewpt (C)</label>
             </text>
 
+            <text>
+              <row>0</row>
+              <col>6</col>
+              <label>Turbulence</label>
+            </text>
+
             <input>
               <name>aloft-4-elevation-ft</name>
               <row>1</row>
@@ -686,6 +692,33 @@
               </binding>
             </input>
 
+            <combo>
+              <name>aloft-4-turbulence</name>
+              <row>1</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/aloft/entry[4]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>aloft-4-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("aloft",4);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
             <input>
               <name>aloft-3-elevation-ft</name>
               <row>2</row>
@@ -794,6 +827,33 @@
               </binding>
             </input>
 
+            <combo>
+              <name>aloft-3-turbulence</name>
+              <row>2</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/aloft/entry[3]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>aloft-3-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("aloft",3);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
             <input>
               <name>aloft-2-elevation-ft</name>
               <row>3</row>
@@ -902,6 +962,34 @@
               </binding>
             </input>
 
+            <combo>
+              <name>aloft-2-turbulence</name>
+              <row>3</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/aloft/entry[2]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>aloft-2-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("aloft",2);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
+
             <input>
               <name>aloft-1-elevation-ft</name>
               <row>4</row>
@@ -1010,6 +1098,33 @@
               </binding>
             </input>
 
+            <combo>
+              <name>aloft-1-turbulence</name>
+              <row>4</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/aloft/entry[1]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>aloft-1-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("aloft",1);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
             <input>
               <name>aloft-0-elevation-ft</name>
               <row>5</row>
@@ -1123,6 +1238,34 @@
                 <object-name>aloft-0-dewpoint-degc</object-name>
               </binding>
             </input>
+
+            <combo>
+              <name>aloft-0-turbulence</name>
+              <row>5</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/aloft/entry[0]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>aloft-0-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("aloft",0);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
           </group>
           <empty>
             <stretch>true</stretch>
@@ -1316,6 +1459,33 @@
               </binding>
             </input>
 
+            <combo>
+              <name>boundary-1-turbulence</name>
+              <row>1</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/boundary/entry[1]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>boundary-1-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("boundary",1);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
             <input>
               <name>boundary-0-elevation-ft</name>
               <row>2</row>
@@ -1429,6 +1599,34 @@
                 <object-name>boundary-0-dewpoint-degc</object-name>
               </binding>
             </input>
+
+            <combo>
+              <name>boundary-0-turbulence</name>
+              <row>2</row>
+              <col>6</col>
+              <pref-width>90</pref-width>
+              <live>true</live>
+              <property>/environment/config/boundary/entry[0]/turbulence-name</property>
+              <value>none</value>
+              <value>light</value>
+              <value>moderate</value>
+              <value>severe</value>
+              <binding>
+                <command>dialog-apply</command>
+                <object-name>boundary-0-turbulence</object-name>
+              </binding>
+              <binding>
+                <command>nasal</command>
+                <script>controller.setTurbulence("boundary",0);</script>
+              </binding>
+              <!--enable>
+                <equals>
+                  <property>/sim/gui/dialogs/weather-scenario/state</property>
+                  <value type="int">1</value>
+                </equals>
+              </enable-->
+            </combo>
+
           </group>
           <empty>
             <stretch>true</stretch>
@@ -1593,6 +1791,12 @@
         },
 
         open : func {
+          for( var i = 0; i < 5; i+=1 )
+            me.initTurbulence("aloft", i );
+
+          for( var i = 0; i < 2; i+=1 )
+            me.initTurbulence("boundary", i );
+           
           #initialize the METAR source selection
           if( getprop( "environment/params/metar-updates-environment" ) == 0 ) {
             setprop( me.base ~ "/source-selection", "Disabled" );
@@ -1713,6 +1917,26 @@
           gui.dialog_update( "weather", "metar" );
         },
 
+        setTurbulence : func( where, idx ) {
+          var propPath = "/environment/config/" ~ where ~ "/entry[" ~ idx ~ "]/";
+          setprop( propPath ~ "turbulence/magnitude-norm", 
+            me.turbulenceNames[getprop(propPath ~ "turbulence-name")]/(size(me.turbulenceNames)-1) );
+        },
+
+        initTurbulence : func( where, idx ) {
+          var propPath = "/environment/config/" ~ where ~ "/entry[" ~ idx ~ "]/";
+          var turb = getprop( propPath ~ "turbulence/magnitude-norm" ) * (size(me.turbulenceNames)-1);
+          turb = int(int(10*turb+5)/10); # round to nearest integer
+          foreach( var t; keys(me.turbulenceNames) ) {
+            if( me.turbulenceNames[t] == turb ) {
+              setprop( propPath ~ "turbulence-name", t );
+              break;
+            }
+          }
+        },
+
+        turbulenceNames : { "none" : 0, "light" : 1, "moderate" : 2, "severe" : 3 },
+
       };
 
       var controller = GlobalWeatherDialogController.new( cmdarg() );
diff --git a/materials.xml b/materials.xml
index 539b3054e..4d77b60aa 100644
--- a/materials.xml
+++ b/materials.xml
@@ -181,6 +181,12 @@ Shared parameters for various materials.
   <wrapu>false</wrapu>
   <wrapv>false</wrapv>
  </material>
+ 
+ <material>
+  <name>pa_stopway</name>
+  <texture>Runway/pa_stopway.png</texture>
+  <wrapu>false</wrapu>
+ </material>
 
  <material>
   <name>pa_L</name>
@@ -423,6 +429,12 @@ Shared parameters for various materials.
   <wrapu>false</wrapu>
   <wrapv>false</wrapv>
  </material>
+ 
+ <material>
+  <name>pc_stopway</name>
+  <texture>Runway/pc_stopway.png</texture>
+  <wrapu>false</wrapu>
+ </material>
 
  <material>
   <name>pc_L</name>
@@ -1350,6 +1362,7 @@ Shared parameters for various materials.
   <name>IrrCropPastureCover</name>
   <name>IrrCrop</name>
   <name>Orchard</name>
+  <name>Rice</name>
   <texture>Terrain/irrcrop1.png</texture>
   <texture>Terrain/irrcrop2.png</texture>
   <texture>Terrain/irrcrop3.png</texture>