There is a detail I didn't mention. The variable that I use in the expression of the parameter passed to the subreport is itself returned by another subreport. Later I saw in the docs that in these cases, the master variable that stores the subreport variable should be marked as "calculation=System". The lack of this setting was responsible for the variable being null most of the time. After I set it to "System" it took a value in the title band and kept it to the end, solving the original problem. Anyway, thanks for the explanation (with proof). I think this is the expected behavior. I mean, the passing of a variable to a subreport should evaluate when the report is being processed.