multiple bollean unions

Hi.
As part of a larger python script in 2.49b I am trying to commit a number of boolean unions to arrive at a final, single object. The code portion below creates a sphere and then creates a succession of cylinders in a circle around it. If I uncomment the last section to make each new cylinder boolean unite to the sphere then after the first union I get this error in my terminal and Blender crashes:
ASSERT intern/moto/include/MT_Vector3.inl:42: !MT_fuzzyZero(s) failed.
Trace/breakpoint trap

This error is due to coincident faces when doing a union, as fas as I can tell, and I am assuming it’s because the old mesh from a union is still held in the internal Blender database and interferes with the new union, as there should be no co-incident faces between the meshes actually being united. I have tried renaming and moving the mesh between unions but with no luck. Anybody have an idea how best to solve this?
Many thanks
Ryan

import Blender
import math
cylinder = []
sc = Blender.Scene.GetCurrent() # get current scene
sphere = Blender.Mesh.Primitives.Icosphere(2, 2)
sc.objects.new(sphere,‘Sphere’) # add a new mesh-type object to the scene
sp = Blender.Object.Get(‘Sphere’)
for i in range (0, 10):
cylinder.append(Blender.Mesh.Primitives.Cylinder(6, 1, 2))
print cylinder
for vert in cylinder[i].verts:
vert.co.z = vert.co.z+1
sc.objects.new(cylinder[i], ‘Cyl’+str(i))
cy = Blender.Object.Get(‘Cyl’+str(i))
cy.RotX = math.pi/2
cy.RotZ = (float(i)/10)2math.pi
Blender.Window.RedrawAll()

modunion = sp.modifiers.append(Blender.Modifier.Type.BOOLEAN)

modunion[Blender.Modifier.Settings.OBJECT] = cy

modunion[Blender.Modifier.Settings.OPERATION] = 1

cy.makeDisplayList()

m = Blender.Mesh.New()

m.getFromObject(sp.name)

sp.modifiers.remove(modunion)

sp.link(m)

sc.objects.unlink(cy)