diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index 0068cb8..d48dc6c 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -436,7 +436,7 @@
 type GsmBcdString BcdMccMnc with { variant "FIELDLENGTH(6)" };
 
 /* Compute BcdMccMnc from a pair of GsmMcc/GsmMnc values */
-function f_enc_BcdMccMnc(GsmMcc mcc, GsmMnc mnc) return BcdMccMnc {
+function f_build_BcdMccMnc(GsmMcc mcc, GsmMnc mnc) return BcdMccMnc {
 	if (lengthof(mnc) == 2) {
 		mnc := mnc[0] & mnc[1] & 'F'H;
 	}
@@ -451,30 +451,30 @@
 }
 
 /* Compute BcdMccMnc from integer values */
-function f_enc_BcdMccMnc_int(uint16_t mcc, uint16_t mnc, boolean mnc_3_digits) return BcdMccMnc {
+function f_build_BcdMccMnc_int(uint16_t mcc, uint16_t mnc, boolean mnc_3_digits) return BcdMccMnc {
 	var hexstring mcc_str := str2hex(int2str(mcc));
 	var hexstring mnc_str := str2hex(int2str(mnc));
 	if (mnc_3_digits == true) {
-		return f_enc_BcdMccMnc(mcc_str[0] & mcc_str[1] & mcc_str[2],
-				       mnc_str[0] & mnc_str[1] & mnc_str[2]);
+		return f_build_BcdMccMnc(mcc_str[0] & mcc_str[1] & mcc_str[2],
+					 mnc_str[0] & mnc_str[1] & mnc_str[2]);
 	} else {
-		return f_enc_BcdMccMnc(mcc_str[0] & mcc_str[1] & mcc_str[2],
-				       mnc_str[0] & mnc_str[1]);
+		return f_build_BcdMccMnc(mcc_str[0] & mcc_str[1] & mcc_str[2],
+					 mnc_str[0] & mnc_str[1]);
 	}
 }
 
-testcase TC_selftest_enc_BcdMccMnc() runs on Dummy_CT {
+testcase TC_selftest_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_build_BcdMccMnc('262'H,  '42'H), BcdMccMnc:'262F42'H)) { setverdict(fail); }
+	if (not match(f_build_BcdMccMnc('123'H,  '45'H), BcdMccMnc:'123F45'H)) { setverdict(fail); }
+	if (not match(f_build_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); }
+	if (not match(f_build_BcdMccMnc_int(262, 42, false), BcdMccMnc:'262F42'H)) { setverdict(fail); }
+	if (not match(f_build_BcdMccMnc_int(123, 45, false), BcdMccMnc:'123F45'H)) { setverdict(fail); }
+	if (not match(f_build_BcdMccMnc_int(123, 456, true), BcdMccMnc:'123645'H)) { setverdict(fail); }
 
 	setverdict(pass);
 }
