Yeah @jcue, worked very well :). Thank you very much.
The line just got a little big:
if len(self.listverts) >=2 and self.geom2 not in [x for y in [a.verts[:] for a in self.listverts[-2].link_edges] for x in y]:
self.bm.edges.new((self.listverts[-1], self.listverts[-2]))