Weird Bullet Spread when using a timer

When shooting with my SWEP when self.Burst is true the bullet spread gets weird and the bullets always go to the bottom right corner of the crosshair, but when self.Burst is off it works. By doing a little testing i found out that calling self:PrimAttacker with a timer causes this, but i dont know how to fix it. self:Primattacker just does the usual TTT primaryattack stuff.
Any ideas how to fix the spread?


function SWEP:PrimaryAttack(worldsnd)
	local delay = self.Primary.Delay
	if self.Burst then
		local j = self.BurstNum
		local i = 0
		self:SetNextPrimaryFire( CurTime() + self.BurstDelay + (delay*(j-1)))
		while i<j do
			timer.Simple(delay*i, function()
			self:PrimAttacker(worldsnd)
			end)
			i = i+1
		end
	else
		self:SetNextPrimaryFire( CurTime() + delay)
		self:PrimAttacker(worldsnd)
	end
end