diff --git a/regression_test/predefFunction2/predefFunctTest.ttcn b/regression_test/predefFunction2/predefFunctTest.ttcn
index 51db8556e66f223dcebf0b87a2d166a68f030df5..6a2a0bc39415281fb0ca5d7b2048d4d3c6b9c9d5 100755
--- a/regression_test/predefFunction2/predefFunctTest.ttcn
+++ b/regression_test/predefFunction2/predefFunctTest.ttcn
@@ -2248,7 +2248,7 @@ testcase tc_predef_replace_bitstring_24() runs on CT {
   template bitstring tl_bs1 := '11'B;
   var integer idx := 0;
   var integer len := 2
-  var bitstring vl_bs := replace(tl_bs0,idx,len,tl_bs1); //NPE, cont here!!!
+  var bitstring vl_bs := replace(tl_bs0,idx,len,tl_bs1);
   if(vl_bs != '1100 1111'B){
     setverdict(fail, "expected '11001111'B got:", vl_bs);
   } else {
@@ -2472,6 +2472,124 @@ testcase tc_predef_replace_hexstring_18_bad() runs on CT {
   }
 }
 
+//too long index: 7+2, runtime
+testcase tc_predef_replace_hexstring_19() runs on CT {
+  var hexstring vl_bs0 := '0000 1111'H
+  var hexstring vl_bs1 := '011'H;
+  var integer idx := 7;
+  var integer len := 2;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+//too long index: 9+0, runtime
+testcase tc_predef_replace_hexstring_20() runs on CT {
+  var hexstring vl_bs0 := '0000 1111'H
+  var hexstring vl_bs1 := '011'H;
+  var integer idx := 9;
+  var integer len := 0;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+//negative index
+testcase tc_predef_replace_hexstring_21() runs on CT {
+  var hexstring vl_bs0 := '0000 1111'H
+  var hexstring vl_bs1 := '011'H;
+  var integer idx := -1;
+  var integer len := 2;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+//negative length
+testcase tc_predef_replace_hexstring_22() runs on CT {
+  var hexstring vl_bs0 := '0000 1111'H
+  var hexstring vl_bs1 := '011'H;
+  var integer idx := 0;
+  var integer len := -2;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+//uninit original string
+testcase tc_predef_replace_hexstring_23() runs on CT {
+  var hexstring vl_bs0;
+  var hexstring vl_bs1 := '011'H;
+  var integer idx := 0;
+  var integer len := 0;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+//uninit string to be inserted
+testcase tc_predef_replace_hexstring_24() runs on CT {
+  var hexstring vl_bs0 := '0000 1111'H
+  var hexstring vl_bs1 ;
+  var integer idx := 0;
+  var integer len := 0;
+  @try {
+    var hexstring vl_bs := replace(vl_bs0,idx,len,vl_bs1);
+    setverdict(fail,"DTE expected")
+  }
+  @catch(e) {
+    setverdict(pass,"Expected DTE catched")
+  }
+}
+
+// var templates. append 3 char runtime
+testcase tc_predef_replace_hexstring_25() runs on CT {
+  var template hexstring vl_bs0 := '0000 1111'H
+  var template hexstring vl_bs1 := '011'H;
+  var integer idx := 8;
+  var integer len := 0;
+  var hexstring vl_bs := replace(vl_bs0,idx,len, vl_bs1);
+  if(vl_bs != '0000 1111 011'H){
+    setverdict(fail, "expected '00001111011'H got:", vl_bs);
+  } else {
+    setverdict(pass);
+  }
+}
+
+// const local templates. append 3 char runtime
+testcase tc_predef_replace_hexstring_26() runs on CT {
+  template hexstring vl_bs0 := '0000 1111'H
+  template hexstring vl_bs1 := '011'H;
+  var integer idx := 8;
+  var integer len := 0;
+  var hexstring vl_bs := replace(vl_bs0,idx,len, vl_bs1);
+  if(vl_bs != '0000 1111 011'H){
+    setverdict(fail, "expected '00001111011'H got:", vl_bs);
+  } else {
+    setverdict(pass);
+  }
+}
+
 //*********** Replace() for octetstring **********
 
 // remove 2 chars from the beginnining, compile time
@@ -4137,9 +4255,18 @@ control{
   execute(tc_predef_replace_hexstring_10());
   execute(tc_predef_replace_hexstring_11());
   execute(tc_predef_replace_hexstring_12());
-  execute(  tc_predef_replace_hexstring_14_bad());
-  execute(  tc_predef_replace_hexstring_16_bad());
-  execute(  tc_predef_replace_hexstring_18_bad());
+  execute(tc_predef_replace_hexstring_14_bad());
+  execute(tc_predef_replace_hexstring_16_bad());
+  execute(tc_predef_replace_hexstring_18_bad());
+  execute(tc_predef_replace_hexstring_19());
+  execute(tc_predef_replace_hexstring_20());
+  execute(tc_predef_replace_hexstring_21());
+  execute(tc_predef_replace_hexstring_22());
+  execute(tc_predef_replace_hexstring_23());
+  execute(tc_predef_replace_hexstring_24());
+  execute(tc_predef_replace_hexstring_25());
+  execute(tc_predef_replace_hexstring_26());
+  
   //===
   execute(tc_predef_replace_octetstring_1());
   execute(tc_predef_replace_octetstring_1a());