Is expiration null? Maybe there's the problem.
expiration
if expiration is null, it's still not a null reference (hint: reference).
Hadi, the problem is you wrote clever code. Instead write debug-able code.