I have recently been implementing deferred lighting/rendering in my DIY game engine, and most things have been going just fine, but now that I'm rendering my light volumes using actual geometry I'm finding that from some angles the light gets cut off with an hard edge, basically because the light volume does not cover the same pixels in the gBuffer from all angles.

Here are some screenshots to illustrate what I mean:



Here is an image of a basic crate object with a hard edge from a point light showing up on it.
Click image for larger version. 

Name:	att2.jpg 
Views:	79 
Size:	2.8 KB 
ID:	2681

And here is the color buffer of the same crate to show that noting else is occluding the light.
Click image for larger version. 

Name:	att1.jpg 
Views:	55 
Size:	13.8 KB 
ID:	2682

And this is a part of a simplistic render of all the point lights volumes in the viewport from the same viewpoint as before, and I have marked the point light edge that show up on the crate.
Click image for larger version. 

Name:	att3.jpg 
Views:	67 
Size:	6.0 KB 
ID:	2683

And lastly, here is a completely different image highlighting the problem in another way.
Here you can clearly see the problem on the left hand wall, but also that I have working attenuation calculations on the floor, and if i watch the effected wall from inside the room the light looks correct, but from this angle the point light "clips" the lighting early.
Click image for larger version. 

Name:	att4.jpg 
Views:	69 
Size:	5.0 KB 
ID:	2684



I was part of implementing a deferred lighting solution in school about a year ago, and I can't remember having this issue back then, but it is quite possible that someone else solved this before I ever noticed.
And after thinking about this I can't seem to figure out a solution to this problem, and my attempts to find information on dealing with this problem I come up dry.
So am I doing something wrong here, or is there a well known way of dealing with this problem that I'm missing?