diff --git a/benchmarks/bugs/sphere2.geo b/benchmarks/bugs/sphere2.geo
new file mode 100644
index 0000000000000000000000000000000000000000..28590d700c1045ee34e435941a8e5dd5aea1a4ee
--- /dev/null
+++ b/benchmarks/bugs/sphere2.geo
@@ -0,0 +1,153 @@
+
+// se plante sous Linux qd on compile avec -O2
+
+Mesh.Algorithm = 3;
+Mesh.CharacteristicLengthFactor = 0.5;
+
+r = 1;
+boxlength = 14*r;
+cl1 = .1*boxlength;
+cl2 = .2*r;
+nth = 15;
+nphi = nth;
+//they must be equal!
+
+
+/*
+r = 1;
+boxlength = 20*r;
+cl1 = .05*boxlength;
+cl2 = .1*r;
+nth = 15;
+nphi = nth;
+//they must be equal!
+*/
+
+
+
+temp1 = nth*nphi;
+
+//points, 1000s
+For t In {1:temp1}
+  phinumber = Fmod(t-1,nth)+1;
+  thnumber = ((t-(Fmod(t-1,nth)+1))/nth) + 1;
+  phi =  (2*Pi/(nphi))*(phinumber-1);
+  th = ((Pi)/(nth+1))*(thnumber);
+  Point(1000+t) = {r*Sin(th)*Cos(phi),r*Sin(th)*Sin(phi),r*Cos(th),cl2};
+EndFor
+
+//lines in phi dir, 2000s
+For t In {1:temp1}
+  phinumber = Fmod(t-1,nth)+1;
+  thnumber = ((t-(Fmod(t-1,nth)+1))/nth) + 1;
+  tthp1 = (phinumber) + ((thnumber+1)-1)*nth;
+  tphip1 = (phinumber+1) + ((thnumber)-1)*nphi;
+  tphiback = (1) + ((thnumber)-1)*nphi;
+  If (phinumber < nphi) 
+    Line(2000 + t) = {1000 + t,1000 + tphip1};
+  EndIf
+  If (phinumber == nphi)
+    Line(2000 + t) = {1000+t, 1000 + tphiback}; 
+  EndIf 
+EndFor
+
+//lines in th dir, 3000s
+For t In {1:temp1}
+  phinumber = Fmod(t-1,nth)+1;
+  thnumber = ((t-(Fmod(t-1,nth)+1))/nth) + 1;
+  tthp1 = (phinumber) + ((thnumber+1)-1)*nth;
+  tphip1 = (phinumber+1) + ((thnumber)-1)*nphi;
+  tphiback = (1) + ((thnumber)-1)*nphi;
+  If (thnumber < nth) 
+    Line(3000 + t) = {1000 + t,1000 + tthp1};
+  EndIf
+EndFor
+
+//computer gen all surface but the ends
+//line loops 4000, planes 5000
+For t In {1:temp1}
+  phinumber = Fmod(t-1,nth)+1;
+  thnumber = ((t-(Fmod(t-1,nth)+1))/nth) + 1;
+  tthp1 = (phinumber) + ((thnumber+1)-1)*nth;
+  tphip1 = (phinumber+1) + ((thnumber)-1)*nphi;
+  tphiback = (1) + ((thnumber)-1)*nphi;
+  tphibackp1 = (2) + ((thnumber)-1)*nphi;
+  If ((thnumber < nth) && (phinumber < nphi)) 
+    Line Loop(4000 + t) = {3000 + t,2000 + tthp1, -(3000 + tphip1), -(2000 + t)};
+    Plane Surface(5000 + t) = {4000 + t}; 
+  EndIf
+  If ((thnumber < nth) && (phinumber == nphi))
+    Line Loop(4000 + t) = {3000 + t,2000 + tthp1, -(3000 + tphiback), -(2000 + t)};
+    Plane Surface(5000 + t) = {4000 + t}; 
+  EndIf 
+EndFor
+
+
+//Extra stuff, like ends is 6000
+tv1 = 2000 + nth;
+tv2 = 2000 + (nth)*(nth-1) + 1;
+tv3 = 2000 + nth^2;
+tv4 = 5000 + (nth)*(nth-1);
+Line Loop(6001) = {2001:tv1};
+Line Loop(6002) = {tv2:tv3};
+Plane Surface(6003) = {6001};
+Plane Surface(6004) = {6002};
+Surface Loop(6005) = {5001:tv4,6003,6004};
+
+
+//oh, and a box to keep it in
+
+
+Point(1) = {boxlength/2,-boxlength/2,-boxlength/2,cl1};
+Point(2) = {boxlength/2,boxlength/2,-boxlength/2,cl1};
+Point(3) = {-boxlength/2,boxlength/2,-boxlength/2,cl1};
+Point(4) = {-boxlength/2,-boxlength/2,-boxlength/2,cl1};
+
+Point(5) = {boxlength/2,-boxlength/2,boxlength/2,cl1};
+Point(6) = {boxlength/2,boxlength/2,boxlength/2,cl1};
+Point(7) = {-boxlength/2,boxlength/2,boxlength/2,cl1};
+Point(8) = {-boxlength/2,-boxlength/2,boxlength/2,cl1};
+
+Line(9) = {1,2};
+Line(10) = {2,3};
+Line(11) = {3,4};
+Line(12) = {4,1};
+
+Line(13) = {5,6};
+Line(14) = {6,7};
+Line(15) = {7,8};
+Line(16) = {8,5};
+
+Line(17) = {2,6};
+Line(18) = {3,7};
+Line(19) = {4,8};
+Line(20) = {1,5};
+
+
+Line Loop(21) = {9,17,-13,-20};
+Line Loop(22) = {10,18,-14,-17};
+Line Loop(23) = {11,19,-15,-18};
+Line Loop(24) = {12,20,-16,-19};
+Line Loop(25) = {9,10,11,12};
+Line Loop(26) = {13,14,15,16};
+
+Plane Surface(27) = {21};
+Plane Surface(28) = {22};
+Plane Surface(29) = {23};
+Plane Surface(30) = {24};
+Plane Surface(31) = {25};
+Plane Surface(32) = {26};
+
+Physical Surface(36) = {27};
+Physical Surface(37) = {28};
+Physical Surface(38) = {29};
+Physical Surface(39) = {30};
+Physical Surface(40) = {31};
+Physical Surface(41) = {32};
+
+Surface Loop(33) = {27,28,29,30,31,32};
+
+Volume(34) = {33,6005};
+Volume(6006) = {6005};
+Physical Volume(35) = {34};
+Physical Volume(6007) = {6006};