diff --git a/benchmarks/bugs/orientations.geo b/benchmarks/bugs/orientations.geo
new file mode 100644
index 0000000000000000000000000000000000000000..46e853c59b6d54904b89b900d059f93947515298
--- /dev/null
+++ b/benchmarks/bugs/orientations.geo
@@ -0,0 +1,74 @@
+/*********************************************************************
+
+From: Archi Forshop <archi4shop@yahoo.com>
+To: gmsh@geuz.org
+Subject: [Gmsh] Possible Bug with Orientations
+
+Hi,
+
+I am having problems making meshed surface elements
+oriented the same way as the physical surface entity
+they belong to. I'm attaching below a simple script
+that shows it clearly when both Geometry-Normals and
+Surface-Normals are displayed at the same time.
+Different mesh algorithms produce sometimes different
+orientations, all basically wrong ones.
+
+Maybe I'm doing something wrong myself.
+
+Archi
+
+*********************************************************************/
+
+lc = 1.0;
+
+xa    = 3.0;
+yb    = 1.0;
+zc    = 2.0;
+
+p1 = newp; Point(p1) = {0.0, 0.0, 0.0, lc};
+p2 = newp; Point(p2) = {xa , 0.0, 0.0, lc};
+p3 = newp; Point(p3) = {xa , yb , 0.0, lc};
+p4 = newp; Point(p4) = {0.0, yb , 0.0, lc};
+p5 = newp; Point(p5) = {0.0, 0.0, zc , lc};
+p6 = newp; Point(p6) = {xa , 0.0, zc , lc};
+p7 = newp; Point(p7) = {xa , yb , zc , lc};
+p8 = newp; Point(p8) = {0.0, yb , zc , lc};
+
+l1  = newreg; Line(l1)  = {p1,p2};
+l2  = newreg; Line(l2)  = {p2,p3};
+l3  = newreg; Line(l3)  = {p3,p4};
+l4  = newreg; Line(l4)  = {p4,p1};
+l5  = newreg; Line(l5)  = {p1,p5};
+l6  = newreg; Line(l6)  = {p2,p6};
+l7  = newreg; Line(l7)  = {p3,p7};
+l8  = newreg; Line(l8)  = {p4,p8};
+l9  = newreg; Line(l9)  = {p5,p6};
+l10 = newreg; Line(l10) = {p6,p7};
+l11 = newreg; Line(l11) = {p7,p8};
+l12 = newreg; Line(l12) = {p8,p5};
+
+llp1 = newreg; Line Loop(llp1) = {l1,l6,-l9,-l5};
+llp2 = newreg; Line Loop(llp2) = {l2,l7,-l10,-l6};
+llp3 = newreg; Line Loop(llp3) = {l3,l8,-l11,-l7};
+llp4 = newreg; Line Loop(llp4) = {l4,l5,-l12,-l8};
+llp5 = newreg; Line Loop(llp5) = {l9,l10,l11,l12};
+llp6 = newreg; Line Loop(llp6) = {-l1,-l4,-l3,-l2};
+
+s1 = newreg; Plane Surface(s1)={llp1};
+s2 = newreg; Plane Surface(s2)={llp2};
+s3 = newreg; Plane Surface(s3)={llp3};
+s4 = newreg; Plane Surface(s4)={llp4};
+s5 = newreg; Plane Surface(s5)={llp5};
+s6 = newreg; Plane Surface(s6)={llp6};
+
+slp1 = newreg; Surface Loop(slp1) =
+{s1,s2,s3,s4,s5,s6};
+
+surfPhys = newreg; Physical Surface(surfPhys) = {s1,s2,s3,s4,s5,s6};
+//surfPhys = newreg; Physical Surface(surfPhys) = {s1,-s2,s3,s4,-s5,s6};
+Printf("surfPhys# = %g",surfPhys);
+
+vbrick = newreg; Complex Volume(vbrick) = {slp1};
+
+brick = newreg; Physical Volume(brick) = {vbrick};