Index: engine/worm.c
===================================================================
RCS file: /home/arend/Go/gnugo-rsync/gnugo/engine/worm.c,v
retrieving revision 1.74
diff -u -p -r1.74 worm.c
--- engine/worm.c	20 Jan 2007 22:14:06 -0000	1.74
+++ engine/worm.c	24 Apr 2007 23:25:45 -0000
@@ -1706,6 +1706,10 @@ defense_callback(int anchor, int color, 
 }
 
 
+/* Find stones, that could live for sure, if player (color) moves
+ * first.
+ */
+
 void
 get_lively_stones(int color, signed char safe_stones[BOARDMAX])
 {
@@ -1713,10 +1717,11 @@ get_lively_stones(int color, signed char
   memset(safe_stones, 0, BOARDMAX * sizeof(*safe_stones));
   for (pos = BOARDMIN; pos < BOARDMAX; pos++)
     if (IS_STONE(board[pos]) && find_origin(pos) == pos) {
-      if ((stackp == 0 && worm[pos].attack_codes[0] == 0) || !attack(pos, NULL)
+      if ((stackp == 0 && worm[pos].attack_codes[0] == 0)
+	   || !attack(pos, NULL)
 	  || (board[pos] == color
-	      && ((stackp == 0 && worm[pos].defense_codes[0] != 0)
-		  || find_defense(pos, NULL))))
+	      && ((stackp == 0 && worm[pos].defense_codes[0] == WIN)
+		  || find_defense(pos, NULL) == WIN)))
 	mark_string(pos, safe_stones, 1);
     }
 }
