This I cannot explain. Opening a file directly from its full name in a string succeeds. But doing the same from a parameter transferred from ConteXt to Lua succeeds if the file is in one directory deeper but fails if the file is two directories deeper. I suspect there is something not ok in LuaTeX. The lines with .... and >>>> directly come from print statements inserted in the Lua code. dr. Hans van der Meer Open file in directory 1 and 2 levels deep - direct call succeeds ..........io.open("events/hga-0372-345-62.xml","r")=>file (0x7fff97415f88) ..........io.open("events/transcripten/hga-0372-345-62.xml","r")=>file (0x7fff97416020) Idem but now from parameter filename transferred from ConTeXt into Lua: Open file one level deeper succeeds (printed filename comes from the call): >>>>>>>>>>io.open(filename,"r") filename=events/hga-0372-1764-63.xml=>file (0x7fff974160b8) Open file two levels deeper fails: >>>>>>>>>>io.open(filename,"r") filename=events/transcripten/hga-0372-1764-63.xml=>nil Caller: \def\FileExist#1{\cldcontext{hvdm.existfile([===[#1]===])}} Lua code: hvdm.existfile = function (filename) -- The test code was inserted here -- local file = io.open(filename, "r") if file then file:close() end return file ~= nil and "true" or "false" end