Index: code/playerman/playercontrol.cpp
===================================================================
--- code/playerman/playercontrol.cpp    (revision 7237)
+++ code/playerman/playercontrol.cpp    (working copy)
@@ -771,7 +771,13 @@ void read_keyboard_controls( control_info * ci, float frame_time, physics_info *
 					savedspeed = ci->forward_cruise_percent;
 					ci->forward_cruise_percent = 0.0f;
 					override_analog_throttle = 1;
-					snd_play( &Snds[SND_THROTTLE_DOWN], 0.0f );
+					if (Ship_info[Player_ship->ship_info_index].glide_start_snd > 0) {
+						//If a custom glide start sound was specified, play it
+						snd_play( &Snds[Ship_info[Player_ship->ship_info_index].glide_start_snd], 0.0f );
+					} else {
+						//If glide_start_snd wasn't set (probably == 0), use the default throttle down sound
+						snd_play( &Snds[SND_THROTTLE_DOWN], 0.0f );
+					}
 				}
 			}
 		} else {
@@ -781,7 +787,13 @@ void read_keyboard_controls( control_info * ci, float frame_time, physics_info *
 				if ( object_get_gliding(Player_obj) && !object_glide_forced(Player_obj) ) {
 					object_set_gliding(Player_obj, false);
 					ci->forward_cruise_percent = savedspeed;
-					snd_play( &Snds[SND_THROTTLE_UP], 0.0f );
+					if (Ship_info[Player_ship->ship_info_index].glide_end_snd > 0) {
+						//If a custom glide end sound was specified, play it
+						snd_play( &Snds[Ship_info[Player_ship->ship_info_index].glide_end_snd], 0.0f );
+					} else {
+						//If glide_end_snd wasn't set (probably == 0), use the default throttle up sound
+						snd_play( &Snds[SND_THROTTLE_UP], 0.0f );
+					}
 				}
 			}
 		}
Index: code/ship/ship.cpp
===================================================================
--- code/ship/ship.cpp    (revision 7237)
+++ code/ship/ship.cpp    (working copy)
@@ -2632,6 +2632,12 @@ strcpy_s(parse_error_text, temp_error);
 	//Parse the engine sound
 	parse_sound("$EngineSnd:", &sip->engine_snd, sip->name);
 
+	//Parse optional sound to be used for beginning of a glide
+	parse_sound("$GlideStartSnd:", &sip->glide_start_snd, sip->name);
+
+	//Parse optional sound to be used for end of a glide
+	parse_sound("$GlideEndSnd:", &sip->glide_end_snd, sip->name);
+
 	if(optional_string("$Closeup_pos:"))
 	{
 		stuff_vector(&sip->closeup_pos);
Index: code/ship/ship.h
===================================================================
--- code/ship/ship.h    (revision 7237)
+++ code/ship/ship.h    (working copy)
@@ -1252,6 +1252,8 @@ typedef struct ship_info {
 	float	sup_subsys_repair_rate;
 
 	int engine_snd;							// handle to engine sound for ship (-1 if no engine sound)
+	int glide_start_snd;					// handle to sound to play at the beginning of a glide maneuver (default is 0 for regular throttle down sound)
+	int glide_end_snd;						// handle to sound to play at the end of a glide maneuver (default is 0 for regular throttle up sound)
 
 	vec3d	closeup_pos;					// position for camera when using ship in closeup view (eg briefing and hud target monitor)
 	float		closeup_zoom;					// zoom when using ship in closeup view (eg briefing and hud target monitor)
