diff --git a/uk/ac/sanger/artemis/components/ValidateViewer.java b/uk/ac/sanger/artemis/components/ValidateViewer.java
index 96906e1e8a2d1a9365a6ff690bc9f96e7fa7c9c7..adc68595251a288da7110c2e85cd411387329c2c 100644
--- a/uk/ac/sanger/artemis/components/ValidateViewer.java
+++ b/uk/ac/sanger/artemis/components/ValidateViewer.java
@@ -55,7 +55,8 @@ public class ValidateViewer extends FileViewer implements EntryGroupChangeListen
   private static final long serialVersionUID = 1L;
   private EntryGroup entryGrp;
   private FeatureVector selectedFeatures;
-  private JCheckBox showFailedFeatures = new JCheckBox("Show only failed features", true);
+  private JCheckBox showFailedFeatures = new JCheckBox("failed features only", true);
+  private JCheckBox showObsoleteFeatures = new JCheckBox("obsolete features", false);
   private boolean inAutoFix = false;
 
   /**
@@ -154,7 +155,6 @@ public class ValidateViewer extends FileViewer implements EntryGroupChangeListen
       fixButton.setEnabled(false);
     button_panel.add(fixButton);
 
-    
     button_panel.add(showFailedFeatures);
     showFailedFeatures.addItemListener(new ItemListener(){
       public void itemStateChanged(ItemEvent arg0)
@@ -163,6 +163,15 @@ public class ValidateViewer extends FileViewer implements EntryGroupChangeListen
       }
     });
     
+    if(GeneUtils.isGFFEntry(entryGrp))
+      button_panel.add(showObsoleteFeatures);
+    showObsoleteFeatures.addItemListener(new ItemListener(){
+      public void itemStateChanged(ItemEvent arg0)
+      {
+        update();
+      }
+    });
+    
     entryGrp.addEntryGroupChangeListener(new EntryGroupChangeListener(){
       public void entryGroupChanged(EntryGroupChangeEvent event)
       {
@@ -203,13 +212,22 @@ public class ValidateViewer extends FileViewer implements EntryGroupChangeListen
     super.setText("");
     final ValidateFeature gffTest = new ValidateFeature(entryGrp);
     int nfail = 0;
+    int total = 0;
     for(int i=0; i<features.size(); i++)
-      if(!gffTest.featureValidate(features.elementAt(i).getEmblFeature(), 
+    {
+      uk.ac.sanger.artemis.io.Feature f = features.elementAt(i).getEmblFeature();
+      if(!showObsoleteFeatures.isSelected() &&
+         f instanceof GFFStreamFeature && GeneUtils.isObsolete((GFFStreamFeature)f))
+        continue;
+      
+      if(!gffTest.featureValidate(f, 
           this, showFailedFeatures.isSelected()))
         nfail++;
-
-    setTitle("Validation Report :: "+ features.size()+
-        " feature(s) Pass: "+(features.size()-nfail)+" Failed: "+nfail);
+      total++;
+    }
+    
+    setTitle("Validation Report :: "+ total+
+        " feature(s) Pass: "+(total-nfail)+" Failed: "+nfail);
   }
   
   private FeatureVector getFeatures()