diff --git a/library/L3_Common.ttcn b/library/L3_Common.ttcn
index 0a80593..981c6ba 100644
--- a/library/L3_Common.ttcn
+++ b/library/L3_Common.ttcn
@@ -29,30 +29,21 @@
 	OCT14 auts
 }
 
-private function f_rnd_oct(integer len) return octetstring {
-	var integer i;
-	var octetstring res;
-	for (i := 0; i < len; i := i + 1) {
-		res[i] := int2oct(float2int(rnd()*256.0), 1);
-	}
-	return res;
-}
-
 function f_gen_auth_vec_2g() return AuthVector {
 	var AuthVector vec;
-	vec.rand := f_rnd_oct(16);
-	vec.sres := f_rnd_oct(4);
-	vec.kc := f_rnd_oct(8);
+	vec.rand := f_rnd_octstring(16);
+	vec.sres := f_rnd_octstring(4);
+	vec.kc := f_rnd_octstring(8);
 	return vec;
 }
 
 function f_gen_auth_vec_3g() return AuthVector {
 	var AuthVector vec := f_gen_auth_vec_2g();
-	vec.ik := f_rnd_oct(16);
-	vec.ck := f_rnd_oct(16);
-	vec.autn := f_rnd_oct(16);
-	vec.res := f_rnd_oct(8);
-	vec.auts := f_rnd_oct(14);
+	vec.ik := f_rnd_octstring(16);
+	vec.ck := f_rnd_octstring(16);
+	vec.autn := f_rnd_octstring(16);
+	vec.res := f_rnd_octstring(8);
+	vec.auts := f_rnd_octstring(14);
 	return vec;
 }
 
