Or precalculate the lighting each time an object moves and store it in some field on the tile, then use that as part of the fov algorithm when the player or a critter or whatever "looks" around themselves, be that for player map updates or monster pathfinding or whatever.
It seems to me like you are recalculating lighting every time a fov is required, which may end up being pretty inefficient. Iunno!
If you don't want to modify your FOV algorithm, you could make it ignore the light level of the tiles and just work on boolean sorts of obstacles, and then walk through the resultant set afterwards and remove all elements that have no light. Edit: Heck, you can't use the lack of light to block vision in the FOV calculation, anyway; otherwise the player won't be able to see things lit by a torch on the other side of a stretch of darkness.
As for the walls, I had to make every wall adjacent to a "lit" floor space also be considered lit, and not actually cast light on the walls (which makes sense if you think about it: the wall is taking up the whole tile, and no light should be actually "entering" the tile, since it's all full of opaque wall). Even without the lighting issues you are talking about, the player's field of view looked really ugly without doing it that way. I ended up going back through the set of visible cells and adding all of the opaque cells adjacent to visible cells to the set of results, rather than trying to write it into the shadowcasting algorithm.
I posted the code in this forum somewhere, if you wanna find it and translate it into the language of your choice. :3