diff --git a/CHANGES b/CHANGES
index da57b18232..c742be0d07 100644
--- a/CHANGES
+++ b/CHANGES
@@ -59,6 +59,7 @@ Changes since Asterisk 1.4-beta was branched:
   * Added 'E' and 'V' commands to ExternalIVR.
   * Added 'DBDel' and 'DBDelTree' manager commands.
   * Added 'o' and 'X' options to Chanspy.
+  * Added the parkedcallreparking option to features.conf
 
 AMI - The manager (TCP/TLS/HTTP)
 --------------------------------
diff --git a/configs/features.conf.sample b/configs/features.conf.sample
index d3e54f67cf..ea40a801cd 100644
--- a/configs/features.conf.sample
+++ b/configs/features.conf.sample
@@ -16,6 +16,7 @@ context => parkedcalls		; Which context parked calls are in
 ;parkedplay = caller		; Who to play the courtesy tone to when picking up a parked call
 				; one of: parked, caller, both  (default is caller)
 ;parkedcalltransfers = yes      ; Enables or disables DTMF based transfers when picking up a parked call
+;parkedcallreparking = yes      ; Enables or disables DTMF based parking when picking up a parked call
 ;adsipark = yes			; if you want ADSI parking announcements
 ;findslot => next		; Continue to the 'next' free parking space. 
 				; Defaults to 'first' available
diff --git a/res/res_features.c b/res/res_features.c
index f383ebc9ee..c14f39fde2 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -79,6 +79,7 @@ static char *parkedcall = "ParkedCall";
 
 static int parkaddhints = 0;                               /*!< Add parking hints automatically */
 static int parkedcalltransfers = 0;                        /*!< Enable DTMF based transfers on bridge when picking up parked calls */
+static int parkedcallreparking = 0;                        /*!< Enable DTMF based parking on bridge when picking up parked calls */
 static int parkingtime = DEFAULT_PARK_TIME;                /*!< No more than 45 seconds parked before you do something with them */
 static char parking_con[AST_MAX_EXTENSION];                /*!< Context for which parking is made accessible */
 static char parking_con_dial[AST_MAX_EXTENSION];           /*!< Context for dialback for parking (KLUDGE) */
@@ -1833,6 +1834,10 @@ static int park_exec(struct ast_channel *chan, void *data)
 			ast_set_flag(&(config.features_callee), AST_FEATURE_REDIRECT);
 			ast_set_flag(&(config.features_caller), AST_FEATURE_REDIRECT);
 		}
+		if (parkedcallreparking) {
+			ast_set_flag(&(config.features_callee), AST_FEATURE_PARKCALL);
+			ast_set_flag(&(config.features_caller), AST_FEATURE_PARKCALL);
+		}
 		res = ast_bridge_call(chan, peer, &config);
 
 		pbx_builtin_setvar_helper(chan, "PARKEDCHANNEL", peer->name);
@@ -2123,6 +2128,7 @@ static int load_config(void)
 	comebacktoorigin = 1;
 	parkaddhints = 0;
 	parkedcalltransfers = 0;
+	parkedcallreparking = 0;
 
 	transferdigittimeout = DEFAULT_TRANSFER_DIGIT_TIMEOUT;
 	featuredigittimeout = DEFAULT_FEATURE_DIGIT_TIMEOUT;
@@ -2157,6 +2163,8 @@ static int load_config(void)
 			parkaddhints = ast_true(var->value);
 		} else if (!strcasecmp(var->name, "parkedcalltransfers")) {
 			parkedcalltransfers = ast_true(var->value);
+		} else if (!strcasecmp(var->name, "parkedcallreparking")) {
+			parkedcallreparking = ast_true(var->value);
 		} else if (!strcasecmp(var->name, "adsipark")) {
 			adsipark = ast_true(var->value);
 		} else if (!strcasecmp(var->name, "transferdigittimeout")) {