diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index 134edbd..0068cb8 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -443,8 +443,11 @@
 	/* 3GPP TS 24.008, Figure 10.5.13
 	 * | MCC digit 2 | MCC digit 1 |  octet 1
 	 * | MNC digit 3 | MCC digit 3 |  octet 2
-	 * | MNC digit 2 | MNC digit 1 |  octet 3 */
-	return mcc[1] & mcc[0] & mnc[2] & mcc[2] & mnc[1] & mnc[0];
+	 * | MNC digit 2 | MNC digit 1 |  octet 3
+	 *
+	 * NOTE: TITAN takes care of swapping the nibbles in octets,
+	 * so we use the normal (low-to-high) ordering here. */
+	return mcc[0] & mcc[1] & mcc[2] & mnc[2] & mnc[0] & mnc[1];
 }
 
 /* Compute BcdMccMnc from integer values */
@@ -460,6 +463,22 @@
 	}
 }
 
+testcase TC_selftest_enc_BcdMccMnc() runs on Dummy_CT {
+	if (not match('62F224'O, decmatch BcdMccMnc:'262F42'H)) { setverdict(fail); }
+	if (not match('21F354'O, decmatch BcdMccMnc:'123F45'H)) { setverdict(fail); }
+	if (not match('216354'O, decmatch BcdMccMnc:'123645'H)) { setverdict(fail); }
+
+	if (not match(f_enc_BcdMccMnc('262'H,  '42'H), BcdMccMnc:'262F42'H)) { setverdict(fail); }
+	if (not match(f_enc_BcdMccMnc('123'H,  '45'H), BcdMccMnc:'123F45'H)) { setverdict(fail); }
+	if (not match(f_enc_BcdMccMnc('123'H, '456'H), BcdMccMnc:'123645'H)) { setverdict(fail); }
+
+	if (not match(f_enc_BcdMccMnc_int(262, 42, false), BcdMccMnc:'262F42'H)) { setverdict(fail); }
+	if (not match(f_enc_BcdMccMnc_int(123, 45, false), BcdMccMnc:'123F45'H)) { setverdict(fail); }
+	if (not match(f_enc_BcdMccMnc_int(123, 456, true), BcdMccMnc:'123645'H)) { setverdict(fail); }
+
+	setverdict(pass);
+}
+
 /* 24.008 10.5.1.3 */
 type record LocationAreaIdentification {
 	BcdMccMnc	mcc_mnc,
