diff --git a/openbsc/src/mncc.c b/openbsc/src/mncc.c
index 8f93b3f..4282aaf 100644
--- a/openbsc/src/mncc.c
+++ b/openbsc/src/mncc.c
@@ -140,7 +140,8 @@
 	if (!(remote = calloc(1, sizeof(struct gsm_call)))) {
 		memset(&mncc, 0, sizeof(struct gsm_mncc));
 		mncc.callref = call->callref;
-		mncc_set_cause(&mncc, 1, 47);
+		mncc_set_cause(&mncc, GSM48_CAUSE_LOC_PRN_S_LU,
+				GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
 		mncc_send(call->net, MNCC_REJ_REQ, &mncc);
 		free_call(call);
 		return 0;
@@ -304,7 +305,8 @@
 			
 			memset(&rel, 0, sizeof(struct gsm_mncc));
 			rel.callref = callref;
-			mncc_set_cause(&rel, 1, 47);
+			mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU,
+				       GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
 			mncc_send(net, MNCC_REL_REQ, &rel);
 			return 0;
 		}
@@ -354,7 +356,8 @@
 	case MNCC_STOP_DTMF_IND:
 		break;
 	case MNCC_MODIFY_IND:
-		mncc_set_cause(data, 1, 79);
+		mncc_set_cause(data, GSM48_CAUSE_LOC_PRN_S_LU,
+				GSM48_CC_CAUSE_SERV_OPT_UNIMPL);
 		DEBUGP(DMNCC, "(call %x) Rejecting MODIFY with cause %d\n",
 			call->callref, data->cause.value);
 		rc = mncc_send(net, MNCC_MODIFY_REJ, data);
@@ -362,13 +365,15 @@
 	case MNCC_MODIFY_CNF:
 		break;
 	case MNCC_HOLD_IND:
-		mncc_set_cause(data, 1, 79);
+		mncc_set_cause(data, GSM48_CAUSE_LOC_PRN_S_LU,
+				GSM48_CC_CAUSE_SERV_OPT_UNIMPL);
 		DEBUGP(DMNCC, "(call %x) Rejecting HOLD with cause %d\n",
 			call->callref, data->cause.value);
 		rc = mncc_send(net, MNCC_HOLD_REJ, data);
 		break;
 	case MNCC_RETRIEVE_IND:
-		mncc_set_cause(data, 1, 79);
+		mncc_set_cause(data, GSM48_CAUSE_LOC_PRN_S_LU,
+				GSM48_CC_CAUSE_SERV_OPT_UNIMPL);
 		DEBUGP(DMNCC, "(call %x) Rejecting RETRIEVE with cause %d\n",
 			call->callref, data->cause.value);
 		rc = mncc_send(net, MNCC_RETRIEVE_REJ, data);
