diff --git a/engine/optics.c b/engine/optics.c
index bd88db9..29be08f 100644
--- a/engine/optics.c
+++ b/engine/optics.c
@@ -783,6 +783,7 @@ compute_eyes_pessimistic(int pos, struct eyevalue *value,
   int bulk_score = 0;
   signed char chainlinks[BOARDMAX];
   int contains_inset = 0;
+  int eyespace_guessed = 0;
 
   /* Stones inside eyespace which do not coincide with a false eye or
    * a halfeye.
@@ -901,7 +902,8 @@ compute_eyes_pessimistic(int pos, struct eyevalue *value,
    */
   else {
     guess_eye_space(pos, effective_eyesize, margins, bulk_score, eye,
-		    value, pessimistic_min); 
+		    value, pessimistic_min);
+    eyespace_guessed = 1;
     DEBUG(DEBUG_EYES, "  guess_eye - %s, pessimistic_min=%d\n",
 	  eyevalue_to_string(value), *pessimistic_min);
   }
@@ -914,7 +916,7 @@ compute_eyes_pessimistic(int pos, struct eyevalue *value,
   /* An eyespace with at least two interior stones is assumed to be
    * worth at least one eye, regardless of previous considerations.
    */
-  if (*pessimistic_min < 1 && interior_stones >= 2) {
+  if (eyespace_guessed && *pessimistic_min < 1 && interior_stones >= 2) {
     *pessimistic_min = 1;
     DEBUG(DEBUG_EYES, "  pessimistic min revised to 1 (interior stones)\n");
   }

