--- grammar/rainerscript.c      2013-08-30 11:30:41.000000000 -0500
+++ grammar/rainerscript_patched.c      2013-10-21 06:04:12.442830795 -0500
@@ -1315,7 +1315,10 @@
        if(bHadNoMatch) {
                cnfexprEval(func->expr[4], &r[4], usrptr);
                estr = var2String(&r[4], &bMustFree);
-               if(r[4].datatype == 'S') es_deleteStr(r[4].d.estr);
+    /* Note that we do NOT free the string that was returned/created
+     * for r[4]. We pass it to the caller, which in turn frees it.
+     * This saves us doing one unnecessary memory alloc & write.
+     */
        }
        ret->datatype = 'S';
        ret->d.estr = estr;
