diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 73ef3dcff9b9d69d59d3b3fa0ca712e0cde35e14..3c48be7a3032f41360571195900533f4ea7e6cce 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -12083,9 +12083,9 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf,
 
 		if (!here) {
 			tmp->locallyblocked = tmp->remotelyblocked = 0;
-			switch (chan_sig) {
+			switch (tmp->sig) {
+#if defined(HAVE_PRI)
 			case SIG_PRI_LIB_HANDLE_CASES:
-			case SIG_SS7:
 				tmp->inservice = 0;
 #if defined(HAVE_PRI_SERVICE_MESSAGES)
 				((struct sig_pri_chan *) tmp->sig_pvt)->service_status = 0;
@@ -12117,6 +12117,12 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf,
 				}
 #endif	/* defined(HAVE_PRI_SERVICE_MESSAGES) */
 				break;
+#endif	/* defined(HAVE_PRI) */
+#if defined(HAVE_SS7)
+			case SIG_SS7:
+				tmp->inservice = 0;
+				break;
+#endif	/* defined(HAVE_SS7) */
 			default:
 				 /* We default to in service on protocols that don't have a reset */
 				tmp->inservice = 1;