Trigger retorna uma linha a mais que o esperado pela consulta no mysql 5.5.29

[code]BEGIN

DECLARE compra int;

DECLARE controle int;

DECLARE f int DEFAULT 0;

DECLARE controles CURSOR FOR SELECT cc.cont_id FROM agendamento a, roteiro_item ri, controle_compras cc
WHERE a.roteiros_rot_id = ri.roteiros_rot_id AND a.agen_id=cc.agendamento_agen_id AND a.agen_id =new.agendamento_agen_id;

DECLARE estacoes CURSOR FOR SELECT ri.Estacoes_estac_id FROM agendamento a, roteiro_item ri, controle_compras cc
WHERE a.roteiros_rot_id = ri.roteiros_rot_id AND a.agen_id = cc.agendamento_agen_id AND a.agen_id =new.agendamento_agen_id;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET f = 1;

OPEN controles;

OPEN estacoes ;

REPEAT

FETCH estacoes into compra;

FETCH controles into controle;

INSERT INTO compras_item (clientes_passageiros_pas_id,Estacoes_estac_id,controle_compras_cont_id) VALUES (new.clientes_passageiros_pas_id,compra,controle);

UNTIL (f = 1) END REPEAT ;

CLOSE controles;

CLOSE estacoes ;

END[/code]
Os dois cursores retornam 2 linhas,mas na hora da inserção a trigger insere 3 linhas, alguem poderia me ajudar?