Need help with disconnecting function

heres a part of the script i made.

local function Answer(plr, data)
	sent = false
	local correct = false
	local Connection = nil
	Connection = remotes:WaitForChild("AnswerEvent").OnServerEvent:Connect(function(plrt,text, answer)
		if plr == plrt  then
			if answer then
				sent = true
				if string.lower(answer) == data[1] then
					correct = true
				else
					correct = false	
				end	
			end
		end
	end)
	
	local count = 0
	repeat 
		count += 1
		wait(1) 
	until count == 10 or sent == true or not plr or not plr.Character
	if sent == false then
		correct = false
	end	
	Connection:Disconnect()
	return correct
end

after i disconnect the event and fire the remote, it doesnt run the code.
but if i use the same function again. code runs even tho i dont fire the remote.