diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index b9f44485fc18f942ccd2893e1efd0c97a1b6f476..45c6f8dca8dc89725c0edf99819fcb9114ca300a 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -2988,6 +2988,8 @@ static int dahdi_send_keypad_facility_exec(struct ast_channel *chan, void *data)
 	return 0;
 }
 
+#ifdef HAVE_PRI_PROG_W_CAUSE
+
 static char *dahdi_send_callrerouting_facility_app = "DAHDISendCallreroutingFacility";
 
 static int dahdi_send_callrerouting_facility_exec(struct ast_channel *chan, void *data)
@@ -3063,6 +3065,8 @@ static int dahdi_send_callrerouting_facility_exec(struct ast_channel *chan, void
 	return res;
 }
 
+#endif
+
 static int pri_is_up(struct dahdi_pri *pri)
 {
 	int x;
@@ -11684,7 +11688,7 @@ static int start_pri(struct dahdi_pri *pri)
 		if (pri->switchtype == PRI_SWITCH_GR303_TMC)
 			pri->overlapdial |= DAHDI_OVERLAPDIAL_BOTH;
 		pri_set_overlapdial(pri->dchans[i],(pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING)?1:0);
-#ifdef PRI_SET_CHAN_MAPPING_LOGICAL
+#ifdef HAVE_PRI_PROG_W_CAUSE
 		pri_set_chan_mapping_logical(pri->dchans[i], pri->qsigchannelmapping == DAHDI_CHAN_MAPPING_LOGICAL);
 #endif
 #ifdef HAVE_PRI_INBANDDISCONNECT
@@ -13534,8 +13538,10 @@ static int __unload_module(void)
 	}
 	ast_cli_unregister_multiple(dahdi_pri_cli, ARRAY_LEN(dahdi_pri_cli));
 	ast_unregister_application(dahdi_send_keypad_facility_app);
+#ifdef HAVE_PRI_PROG_W_CAUSE
 	ast_unregister_application(dahdi_send_callrerouting_facility_app);
 #endif
+#endif
 #if defined(HAVE_SS7)
 	for (i = 0; i < NUM_SPANS; i++) {
 		if (linksets[i].master != AST_PTHREADT_NULL)
@@ -14324,7 +14330,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
 				} else {
 					confp->pri.overlapdial = DAHDI_OVERLAPDIAL_NONE;
 				}
-#ifdef HAVE_PRI_INBANDDISCONNECT
+#ifdef HAVE_PRI_PROG_W_CAUSE
 			} else if (!strcasecmp(v->name, "qsigchannelmapping")) {
 				if (!strcasecmp(v->value, "logical")) {
 					confp->pri.qsigchannelmapping = DAHDI_CHAN_MAPPING_LOGICAL;
@@ -14333,8 +14339,10 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
 				} else {
 					confp->pri.qsigchannelmapping = DAHDI_CHAN_MAPPING_PHYSICAL;
 				}
+#endif
 			} else if (!strcasecmp(v->name, "discardremoteholdretrieval")) {
 				confp->pri.discardremoteholdretrieval = ast_true(v->value);
+#ifdef HAVE_PRI_INBANDDISCONNECT
 			} else if (!strcasecmp(v->name, "inbanddisconnect")) {
 				confp->pri.inbanddisconnect = ast_true(v->value);
 #endif
@@ -14834,8 +14842,10 @@ static int load_module(void)
 	pri_set_error(dahdi_pri_error);
 	pri_set_message(dahdi_pri_message);
 	ast_register_application_xml(dahdi_send_keypad_facility_app, dahdi_send_keypad_facility_exec);
+#ifdef HAVE_PRI_PROG_W_CAUSE
 	ast_register_application_xml(dahdi_send_callrerouting_facility_app, dahdi_send_callrerouting_facility_exec);
 #endif
+#endif
 #ifdef HAVE_SS7
 	memset(linksets, 0, sizeof(linksets));
 	for (y = 0; y < NUM_SPANS; y++) {