diff --git a/uk/ac/sanger/artemis/io/ValidateFeature.java b/uk/ac/sanger/artemis/io/ValidateFeature.java
index 8846f5ddc7f2dd334f4731effd1d8fbccf515518..a46bb1bd864654968ffbc5fdef5edf90b16710a2 100644
--- a/uk/ac/sanger/artemis/io/ValidateFeature.java
+++ b/uk/ac/sanger/artemis/io/ValidateFeature.java
@@ -58,13 +58,7 @@ import uk.ac.sanger.artemis.util.StringVector;
 
 public class ValidateFeature
 {
-  
-  // TODO   - auto-fix boundary option
-  //        - auto-fix by extending to next stop codon if no valid stop codon
-  //        - if all validations pass then report as "PASS"
-  //        -
-  
-  
+
   private static String[] geneModelParts;
   
   //##sequence-region seqid start end
@@ -81,10 +75,12 @@ public class ValidateFeature
       "GPI_anchor_cleavage_site", "GPI_anchored", "PlasmoAP_score" };
   
   private EntryGroup entryGrp;
+  private FeaturePredicate cds_predicate;
 
   public ValidateFeature(EntryGroup entryGrp)
   {
     this.entryGrp = entryGrp;
+    this.cds_predicate = null;
   }
 
   public static void testHeader(final String headerTxt)
@@ -340,11 +336,8 @@ public class ValidateFeature
     if(!cds_predicate.testPredicate (f)) 
       return false;
 
-    final AminoAcidSequence amino_acids = f.getTranslation ();
-    if(amino_acids.containsStopCodon ())
-      return true;
-    else
-      return false;
+    final AminoAcidSequence aa = f.getTranslation ();
+    return aa.containsStopCodon ();
   }
   
   public boolean hasValidStop(final uk.ac.sanger.artemis.io.Feature feature)
@@ -361,7 +354,9 @@ public class ValidateFeature
   
   private FeaturePredicate getCodingFeaturePredicate()
   {
-    final FeaturePredicate cds_predicate;
+    if(cds_predicate != null)
+      return cds_predicate;
+
     if(entryGrp != null && GeneUtils.isDatabaseEntry( entryGrp ))
     {