     // AB is circle for hyperbolic case.
     // norm is normal to OB, norm2 is other radial
     // reflection - either x-axis or reflection of OA.
-    if (!tryreflect(z,norm) &&
-        !tryreflect(z,norm2)) {
+    // Bizarrely, adding "true &&" here avoids a compilation
+    // error in Firefox _and_ Chrome on Windows.
+    if (true && !tryreflect(z,norm) && !tryreflect(z,norm2)) {
       if (hyperbolic) {
         if (!tryinvert(z,p,r2)) {
           found = true;

    return true;
  }
}

// Rather tediously, ES 1.0 doesn't support bit operations
// on ints, so use these for decoding packed values.

  float radius = diskradius(p,r);

  vec2 z = vTextureCoord;
  float x = z.x, y = z.y;

  if (hplane == 0) {
    // No half-plane
