diff --git a/CHANGES b/CHANGES
index da516efdc2a63719f10fc333ed7d732df5977ab0..4b607b7a2dfa68b9051f6ed8885926386143713b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -250,6 +250,20 @@ Queue
    'queue show'.
 
 
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
+------------------------------------------------------------------------------
+
+res_parking:
+ - The dynamic parking lot creation channel variables PARKINGDYNAMIC,
+   PARKINGDYNCONTEXT, PARKINGDYNEXTEN, and PARKINGDYNPOS are now looked
+   for in the parker's channel instead of the parked channel.  This is only
+   of significance if the parker uses blind transfer or the DTMF one-step
+   parking feature.  You need to use the double underscore '__' inheritance
+   for these variables.  The indefinite inheritance is also recommended
+   for the PARKINGEXTEN variable.
+
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
 ------------------------------------------------------------------------------
diff --git a/main/core_unreal.c b/main/core_unreal.c
index 19f2d1f6516668410d03e69800353cb87783d612..da0bb43bba67202f07bdbaa924f7545eaee6759a 100644
--- a/main/core_unreal.c
+++ b/main/core_unreal.c
@@ -687,13 +687,13 @@ void ast_unreal_call_setup(struct ast_channel *semi1, struct ast_channel *semi2)
 	ast_connected_line_copy_from_caller(ast_channel_connected(semi2), ast_channel_caller(semi1));
 
 	ast_channel_language_set(semi2, ast_channel_language(semi1));
+	ast_channel_musicclass_set(semi2, ast_channel_musicclass(semi1));
+	ast_channel_parkinglot_set(semi2, ast_channel_parkinglot(semi1));
 
 	/* Crossover the accountcode and peeraccount to cross the unreal bridge. */
 	ast_channel_accountcode_set(semi2, ast_channel_peeraccount(semi1));
 	ast_channel_peeraccount_set(semi2, ast_channel_accountcode(semi1));
 
-	ast_channel_musicclass_set(semi2, ast_channel_musicclass(semi1));
-
 	ast_channel_cc_params_init(semi2, ast_channel_get_cc_config_params(semi1));
 
 	/*
diff --git a/res/parking/parking_applications.c b/res/parking/parking_applications.c
index 0a0ea3c4b82ce33203a87fc157206e37a00f0ab8..7dd53599154c15c9c23c03fdfd2e98e4ee8baf97 100644
--- a/res/parking/parking_applications.c
+++ b/res/parking/parking_applications.c
@@ -455,7 +455,7 @@ struct ast_bridge *park_common_setup(struct ast_channel *parkee, struct ast_chan
 
 	lot = parking_lot_find_by_name(lot_name);
 	if (!lot) {
-		lot = parking_create_dynamic_lot(lot_name, parkee);
+		lot = parking_create_dynamic_lot(lot_name, parker);
 	}
 
 	if (!lot) {
diff --git a/res/parking/parking_bridge_features.c b/res/parking/parking_bridge_features.c
index 4cb87c81a73ba78d5342c88f0942c04d554bb133..5fe576424586868f2ed6d73752fdd7bc3ad21fa7 100644
--- a/res/parking/parking_bridge_features.c
+++ b/res/parking/parking_bridge_features.c
@@ -236,6 +236,7 @@ static struct ast_channel *park_local_transfer(struct ast_channel *parker, const
 	/* Before we actually dial out let's inherit appropriate information. */
 	ast_channel_lock_both(parker, parkee);
 	ast_channel_req_accountcodes(parkee, parker, AST_CHANNEL_REQUESTOR_REPLACEMENT);
+	ast_channel_parkinglot_set(parkee, ast_channel_parkinglot(parker));
 	ast_connected_line_copy_from_caller(ast_channel_connected(parkee), ast_channel_caller(parker));
 	ast_channel_inherit_variables(parker, parkee);
 	ast_channel_datastore_inherit(parker, parkee);
@@ -488,6 +489,9 @@ static int parking_park_call(struct ast_bridge_channel *parker, char *exten, siz
 	}
 
 	lot = parking_lot_find_by_name(lot_name);
+	if (!lot) {
+		lot = parking_create_dynamic_lot(lot_name, parker->chan);
+	}
 	if (!lot) {
 		ast_log(AST_LOG_WARNING, "Cannot Park %s: lot %s unknown\n",
 			ast_channel_name(parker->chan), lot_name);
@@ -504,7 +508,8 @@ static int feature_park_call(struct ast_bridge_channel *bridge_channel, void *ho
 {
 	SCOPED_MODULE_USE(AST_MODULE_SELF);
 
-	return parking_park_call(bridge_channel, NULL, 0);
+	parking_park_call(bridge_channel, NULL, 0);
+	return 0;
 }
 
 /*!