diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c
index 328ec7f..8df3e7b 100644
--- a/grammar/rainerscript.c
+++ b/grammar/rainerscript.c
@@ -1315,6 +1315,8 @@ finalize_it:
 	if(bHadNoMatch) {
 		cnfexprEval(func->expr[4], &r[4], usrptr);
 		estr = var2String(&r[4], &bMustFree);
+		if(!bMustFree) /* let caller handle that M) */
+			estr = es_strdup(estr);
 		if(r[4].datatype == 'S') es_deleteStr(r[4].d.estr);
 	}
 	ret->datatype = 'S';
