/* keep only base name, useful especially for vpath builds */
        slash = strrchr(filename, '/');
-       edata->filename = slash ? slash + 1 : filename;
+       if (slash)
+           filename = slash + 1;
    }
+   edata->filename = filename;
    edata->lineno = lineno;
    edata->funcname = funcname;
    /* the default text domain is the backend's */
 
        /* keep only base name, useful especially for vpath builds */
        slash = strrchr(filename, '/');
-       edata->filename = slash ? slash + 1 : filename;
+       if (slash)
+           filename = slash + 1;
    }
+   edata->filename = filename;
    edata->lineno = lineno;
    edata->funcname = funcname;
    /* errno is saved now so that error parameter eval can't change it */