diff -urN povray-3.50c/src/render.cpp povray-3.50c-ww/src/render.cpp
@@ -1655,7 +1676,7 @@
     for (Sib = ((CSG *)parent)->Children; Sib != NULL; Sib = Sib->Sibling)
     {
       if(IsObjectInCSG(Object, Sib))
-        found = true;
+        {  found = true;  break;  }
     }
   }
   return found;
diff -urN povray-3.50c/src/texture.cpp povray-3.50c-ww/src/texture.cpp
--- povray-3.50c/src/texture.cpp	2003-01-07 02:08:29.000000000 +0100
+++ povray-3.50c-ww/src/texture.cpp	2003-06-28 10:33:25.000000000 +0200
@@ -682,7 +682,7 @@
 			for (j=0;j<3;j++)
 				v[j] = (DBL)((POV_RAND() % (NoiseEntries << 1)) - NoiseEntries) / (DBL)NoiseEntries;
 			s = VSumSqr(v);
-		} while ((s > 1.0) && (s < 1.0e-5));
+		} while ((s > 1.0) || (s < 1.0e-5));
 		s = 1.0 / sqrt(s);
 		VScaleEq(v, s)
diff -urN povray-3.50c/src/unix.cpp povray-3.50c-ww/src/unix.cpp
--- povray-3.50c/src/unix.cpp	2003-01-07 02:08:30.000000000 +0100
+++ povray-3.50c-ww/src/unix.cpp	2003-11-22 23:20:19.000000000 +0100
@@ -3379,7 +3379,7 @@
         {
           abortRender = True;
         }
-        else if (theEvent->xkey.state | ControlMask && (theKeySym == XK_L ||
+        else if ((theEvent->xkey.state & ControlMask) && (theKeySym == XK_L ||
                  theKeySym == XK_l || theKeySym == XK_R || theKeySym == XK_r))
         {
           refresh_y_min = 0;
--- povray-3.50c/src/pattern-o.cpp	2004-02-29 18:59:02.000000000 +0100
+++ povray-3.50c-ww/src/pattern.cpp	2004-02-29 18:59:04.000000000 +0100
@@ -3200,7 +3200,7 @@
   }
   else
   {
-    value = 0.25 + (atan2(EPoint[X],EPoint[Z]) + M_PI) / TWO_M_PI;
+    value = (atan2(EPoint[Z],-EPoint[X]) + M_PI) / TWO_M_PI;
   }
 
   return(value);

