Funny thing Andreaz, I saw that EXACT same post on GameDev, didn't help . I've tried several different iterations of the same formula (when I had time), no avail . I know I'm the problem, I just don't know why I'm the problem LOL.

I'm guessing its how I'm calculating the "wall normal" I'm using L.Seg.Normal (Seg is P2-P1) is this the wrong thing to do?

Here is my code for reflection within a vector:
[pascal]function TVector.ReflectAbout(aNormal: IVector): IVector;
var
d : TVectorNumber;
//s, n : IVector;
begin
d := Dot(aNormal);
result := self - 2 * aNormal * d;
(*
s := Normal;
n := aNormal.Direction;
result := 2 * n.Dot(self) * normal - self;
//result := n * (2 * s.dot(n)) - s;
*)
end;[/pascal]

And how I'm calling it:
[pascal]
// L1 - Blue = Collision Line
// L2 - Green = Point falling
// RL - Red = Reflected Line
IP := SegmentIntersection2D(L1.P1, L1.P2, L2.P1, L2.P2);
if(IP<>nil)then
begin
n := L1.seg;
RL.P1 := L2.P1.ReflectAbout(n);
RL.P2 := L2.P2.ReflectAbout(n);
end;[/pascal]