diff -ruN kamailio-3.3.4.orig/modules_k/pv/pv_trans.c kamailio-3.3.4/modules_k/pv/pv_trans.c
--- kamailio-3.3.4.orig/modules_k/pv/pv_trans.c	2013-02-25 18:20:37.000000000 +0100
+++ kamailio-3.3.4/modules_k/pv/pv_trans.c	2013-04-30 12:38:23.000000000 +0200
@@ -309,8 +309,12 @@
 				LM_ERR("substr negative offset\n");
 				return -1;
 			}
+ 			memcpy(_tr_buffer, val->rs.s, val->rs.len);
+ 			st.s = _tr_buffer;
+ 			st.len = val->rs.len;
 			val->flags = PV_VAL_STR;
 			val->ri = 0;
+ 			val->rs = st;
 			if(i>=0)
 			{
 				if(i>=val->rs.len)
