diff --git a/benchmarks/bugs/fx79w151a.geo b/benchmarks/bugs/fx79w151a.geo
new file mode 100644
index 0000000000000000000000000000000000000000..d0d7db9b845d45cbe3e88b7180fee437cea64dc6
--- /dev/null
+++ b/benchmarks/bugs/fx79w151a.geo
@@ -0,0 +1,221 @@
+
+// This works great on my Mac (with clscale = 1, 0.9, 0.7, 0.6, 0.5); fails with 0.8
+
+// fails miserably with clscale = 1 on Linux, but works for clscale 0.9 and 0.5
+
+// Gmesh input File created by Gmeshgen.pl
+
+// Inputfile was: fx79w151a.txt
+
+//FX 79-W-151 A
+
+Point(1) = {1.00000, 0.00000, 0, .01};
+Point(2) = {0.99893, 0.00082, 0, 0.01};
+Point(3) = {0.99572, 0.00095, 0, 0.01};
+Point(4) = {0.99039, 0.00148, 0, 0.01};
+Point(5) = {0.98296, 0.00238, 0, 0.01};
+Point(6) = {0.97347, 0.00388, 0, 0.01};
+Point(7) = {0.96194, 0.00595, 0, 0.01};
+Point(8) = {0.94844, 0.00861, 0, 0.01};
+Point(9) = {0.93301, 0.01186, 0, 0.01};
+Point(10) = {0.91573, 0.01569, 0, 0.01};
+Point(11) = {0.89668, 0.02007, 0, .01};
+Point(12) = {0.87592, 0.02495, 0, 0.0110106};
+Point(13) = {0.85355, 0.03033, 0, 0.0121009};
+Point(14) = {0.82967, 0.03613, 0, 0.0132654};
+Point(15) = {0.80438, 0.04229, 0, 0.0144989};
+Point(16) = {0.77779, 0.04872, 0, 0.0157953};
+Point(17) = {0.75000, 0.05531, 0, 0.0171488};
+Point(18) = {0.72114, 0.06201, 0, 0.0185528};
+Point(19) = {0.69134, 0.06869, 0, .02};
+Point(20) = {0.66072, 0.07528, 0, 0.0298195};
+Point(21) = {0.62941, 0.08162, 0, 0.0398348};
+Point(22) = {0.59755, 0.08764, 0, .05};
+Point(23) = {0.56526, 0.09327, 0, 0.0665949};
+Point(24) = {0.53270, 0.09841, 0, 0.083284};
+Point(25) = {0.50000, 0.10297, 0, .1};
+Point(26) = {0.46730, 0.10679, 0, 0.0831996};
+Point(27) = {0.43474, 0.10980, 0, 0.0665132};
+Point(28) = {0.40245, 0.11192, 0, .05};
+Point(29) = {0.37059, 0.11308, 0, 0.0398059};
+Point(30) = {0.33928, 0.11327, 0, 0.0297943};
+Point(31) = {0.30866, 0.11245, 0, .02};
+Point(32) = {0.27886, 0.11059, 0, 0.0185802};
+Point(33) = {0.25000, 0.10763, 0, 0.0172007};
+Point(34) = {0.22221, 0.10355, 0, 0.0158652};
+Point(35) = {0.19562, 0.09846, 0, 0.0145778};
+Point(36) = {0.17033, 0.09256, 0, 0.013343};
+Point(37) = {0.14645, 0.08600, 0, 0.0121654};
+Point(38) = {0.12408, 0.07892, 0, 0.0110497};
+Point(39) = {0.10332, 0.07141, 0, .01};
+Point(40) = {0.08427, 0.06358, 0, 0.01};
+Point(41) = {0.06699, 0.05554, 0, 0.01};
+Point(42) = {0.05156, 0.04741, 0, 0.01};
+Point(43) = {0.03806, 0.03930, 0, 0.01};
+Point(44) = {0.02653, 0.03133, 0, 0.01};
+Point(45) = {0.01704, 0.02365, 0, 0.01};
+Point(46) = {0.00961, 0.01648, 0, 0.01};
+Point(47) = {0.00428, 0.01010, 0, 0.01};
+Point(48) = {0.00107, 0.00465, 0, 0.01};
+Point(49) = {0.00000, 0.00000, 0, .01};
+Point(50) = {0.00107, -0.00439, 0, 0.01};
+Point(51) = {0.00428, -0.00891, 0, 0.01};
+Point(52) = {0.00961, -0.01360, 0, 0.01};
+Point(53) = {0.01704, -0.01824, 0, 0.01};
+Point(54) = {0.02653, -0.02258, 0, 0.01};
+Point(55) = {0.03806, -0.02659, 0, 0.01};
+Point(56) = {0.05156, -0.03013, 0, 0.01};
+Point(57) = {0.06699, -0.03306, 0, 0.01};
+Point(58) = {0.08427, -0.03531, 0, 0.01};
+Point(59) = {0.10332, -0.03697, 0, .01};
+Point(60) = {0.12408, -0.03819, 0, 0.0110124};
+Point(61) = {0.14645, -0.03907, 0, 0.0121023};
+Point(62) = {0.17033, -0.03965, 0, 0.0132652};
+Point(63) = {0.19562, -0.03997, 0, 0.0144965};
+Point(64) = {0.22221, -0.04003, 0, 0.015791};
+Point(65) = {0.25000, -0.03988, 0, 0.0171439};
+Point(66) = {0.27886, -0.03954, 0, 0.018549};
+Point(67) = {0.30866, -0.03903, 0, .02};
+Point(68) = {0.33928, -0.03837, 0, 0.0297932};
+Point(69) = {0.37059, -0.03757, 0, 0.039808};
+Point(70) = {0.40245, -0.03662, 0, .05};
+Point(71) = {0.43474, -0.03552, 0, 0.0665482};
+Point(72) = {0.46730, -0.03428, 0, 0.0832371};
+Point(73) = {0.50000, -0.03293, 0, .1};
+Point(74) = {0.53270, -0.03147, 0, 0.083241};
+Point(75) = {0.56526, -0.02995, 0, 0.0665522};
+Point(76) = {0.59755, -0.02837, 0, .05};
+Point(77) = {0.62941, -0.02675, 0, 0.0398104};
+Point(78) = {0.66072, -0.02509, 0, 0.0297956};
+Point(79) = {0.69134, -0.02338, 0, .02};
+Point(80) = {0.72114, -0.02165, 0, 0.0185493};
+Point(81) = {0.75000, -0.01992, 0, 0.0171442};
+Point(82) = {0.77779, -0.01821, 0, 0.015791};
+Point(83) = {0.80438, -0.01654, 0, 0.0144962};
+Point(84) = {0.82967, -0.01490, 0, 0.0132645};
+Point(85) = {0.85355, -0.01331, 0, 0.0121014};
+Point(86) = {0.87592, -0.01175, 0, 0.0110116};
+Point(87) = {0.89668, -0.01025, 0, .01};
+Point(88) = {0.91573, -0.00880, 0, 0.01};
+Point(89) = {0.93301, -0.00742, 0, 0.01};
+Point(90) = {0.94844, -0.00618, 0, 0.01};
+Point(91) = {0.96194, -0.00489, 0, 0.01};
+Point(92) = {0.97347, -0.00359, 0, 0.01};
+Point(93) = {0.98296, -0.00258, 0, 0.01};
+Point(94) = {0.99039, -0.00191, 0, 0.01};
+Point(95) = {0.99572, -0.00151, 0, 0.01};
+Point(96) = {0.99893, -0.00104, 0, .01};
+Point(97) = {1.00000, 0.00000, 0, .01};
+Point(98) = {5, 5, 0, 1};
+Point(99) = {-5, 5, 0, 1};
+Point(100) = {-5, -5, 0, 1};
+Point(101) = {5, -5, 0, 1};
+
+//now the list of lines
+Line(1) = {2,1} ;
+Line(2) = {3,2} ;
+Line(3) = {4,3} ;
+Line(4) = {5,4} ;
+Line(5) = {6,5} ;
+Line(6) = {7,6} ;
+Line(7) = {8,7} ;
+Line(8) = {9,8} ;
+Line(9) = {10,9} ;
+Line(10) = {11,10} ;
+Line(11) = {12,11} ;
+Line(12) = {13,12} ;
+Line(13) = {14,13} ;
+Line(14) = {15,14} ;
+Line(15) = {16,15} ;
+Line(16) = {17,16} ;
+Line(17) = {18,17} ;
+Line(18) = {19,18} ;
+Line(19) = {20,19} ;
+Line(20) = {21,20} ;
+Line(21) = {22,21} ;
+Line(22) = {23,22} ;
+Line(23) = {24,23} ;
+Line(24) = {25,24} ;
+Line(25) = {26,25} ;
+Line(26) = {27,26} ;
+Line(27) = {28,27} ;
+Line(28) = {29,28} ;
+Line(29) = {30,29} ;
+Line(30) = {31,30} ;
+Line(31) = {32,31} ;
+Line(32) = {33,32} ;
+Line(33) = {34,33} ;
+Line(34) = {35,34} ;
+Line(35) = {36,35} ;
+Line(36) = {37,36} ;
+Line(37) = {38,37} ;
+Line(38) = {39,38} ;
+Line(39) = {40,39} ;
+Line(40) = {41,40} ;
+Line(41) = {42,41} ;
+Line(42) = {43,42} ;
+Line(43) = {44,43} ;
+Line(44) = {45,44} ;
+Line(45) = {46,45} ;
+Line(46) = {47,46} ;
+Line(47) = {48,47} ;
+Line(48) = {49,48} ;
+Line(49) = {50,49} ;
+Line(50) = {51,50} ;
+Line(51) = {52,51} ;
+Line(52) = {53,52} ;
+Line(53) = {54,53} ;
+Line(54) = {55,54} ;
+Line(55) = {56,55} ;
+Line(56) = {57,56} ;
+Line(57) = {58,57} ;
+Line(58) = {59,58} ;
+Line(59) = {60,59} ;
+Line(60) = {61,60} ;
+Line(61) = {62,61} ;
+Line(62) = {63,62} ;
+Line(63) = {64,63} ;
+Line(64) = {65,64} ;
+Line(65) = {66,65} ;
+Line(66) = {67,66} ;
+Line(67) = {68,67} ;
+Line(68) = {69,68} ;
+Line(69) = {70,69} ;
+Line(70) = {71,70} ;
+Line(71) = {72,71} ;
+Line(72) = {73,72} ;
+Line(73) = {74,73} ;
+Line(74) = {75,74} ;
+Line(75) = {76,75} ;
+Line(76) = {77,76} ;
+Line(77) = {78,77} ;
+Line(78) = {79,78} ;
+Line(79) = {80,79} ;
+Line(80) = {81,80} ;
+Line(81) = {82,81} ;
+Line(82) = {83,82} ;
+Line(83) = {84,83} ;
+Line(84) = {85,84} ;
+Line(85) = {86,85} ;
+Line(86) = {87,86} ;
+Line(87) = {88,87} ;
+Line(88) = {89,88} ;
+Line(89) = {90,89} ;
+Line(90) = {91,90} ;
+Line(91) = {92,91} ;
+Line(92) = {93,92} ;
+Line(93) = {94,93} ;
+Line(94) = {95,94} ;
+Line(95) = {96,95} ;
+Line(96) = {1,96} ;
+Line(97) = {99,98} ;
+Line(98) = {100,99} ;
+Line(99) = {101,100} ;
+Line(100) = {98,101} ;
+
+Line Loop(101) = {97,98,99,100};
+
+Line Loop(102) = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96};
+
+//Surface:
+Plane Surface(103)={101,102};