diff --git a/uk/ac/sanger/artemis/components/variant/HeaderLine.java b/uk/ac/sanger/artemis/components/variant/HeaderLine.java
index 078015679c534bedc325b3cd4635578996b8b9ea..9fd02a5ee89fa02896cfb4ce9f3988491fd6d354 100644
--- a/uk/ac/sanger/artemis/components/variant/HeaderLine.java
+++ b/uk/ac/sanger/artemis/components/variant/HeaderLine.java
@@ -41,7 +41,7 @@ public class HeaderLine
     "INFO", "FORMAT", "FILTER", "FILTER_QUAL", "FILTER_NV_FLAG",
     "FILTER_OVERLAP_FLAG", "FILTER_MULTALL_FLAG", 
     "FILTER_INS", "FILTER_DEL",
-    "FILTER_NONSYN", "FILTER_SYN", "FILTER_MANUAL"};
+    "FILTER_NONSYN", "FILTER_SYN", "FILTER_MANUAL", "FILTER_HOMOZYG"};
   protected static final int INFO_LINE   = 0;
   protected static final int FORMAT_LINE = 1;
   protected static final int FILTER_LINE = 2;
@@ -54,6 +54,7 @@ public class HeaderLine
   protected static final int FILTER_NONSYN = 9;
   protected static final int FILTER_SYN = 10;
   protected static final int FILTER_MANUAL = 11;
+  protected static final int FILTER_HOMOZYG = 12;
   
   public HeaderLine(final String origLine, String headerTypeStr, Hashtable<String, String> lineHash)
   {
diff --git a/uk/ac/sanger/artemis/components/variant/VCFFilter.java b/uk/ac/sanger/artemis/components/variant/VCFFilter.java
index bf7a6b00f7480b3237f125c5ded407d667a887ac..e455abe9523e4665f2e27139f2822bdd63abc9c6 100644
--- a/uk/ac/sanger/artemis/components/variant/VCFFilter.java
+++ b/uk/ac/sanger/artemis/components/variant/VCFFilter.java
@@ -66,6 +66,8 @@ public class VCFFilter extends JFrame
   private static float MAX_CI95 = 10;
   private static Pattern COMMA_PATTERN = Pattern.compile(",");*/
   private static Pattern SEMICOLON_PATTERN = Pattern.compile(";");
+  
+  private static Pattern HOMOZYGOUS_PATTERN = Pattern.compile("^0(/0)*+|(\\|0)*+$");
   private FilteredPanel filterPanel;
   protected static boolean manualFilter = false; // show manual filtering
 
@@ -299,7 +301,7 @@ public class VCFFilter extends JFrame
     else
     {
       //
-      createPanel(propPanel, c, info, "INFO FIELDS:");
+      createPanel(vcfView, propPanel, c, info, "INFO FIELDS:");
     }
 
     ////
@@ -311,8 +313,8 @@ public class VCFFilter extends JFrame
     formatPanel.setBorder(BorderFactory.createLineBorder(Color.gray));
 
     tabPane.addTab("Genotype", formatPanel);
-    createPanel(formatPanel, c, format, "GENOTYPE FIELDS:");
-
+    createPanel(vcfView, formatPanel, c, format, "GENOTYPE FIELDS:");
+    
     //
     c.gridy = c.gridy+1;
     c.gridx = 0;
@@ -375,7 +377,8 @@ public class VCFFilter extends JFrame
     filterPanel.updateFilters();  
   }
   
-  private void createPanel(final JPanel panel, 
+  private void createPanel(final VCFview vcfView,
+                           final JPanel panel, 
                            final GridBagConstraints c, 
                            final List<HeaderLine> headerLineList, 
                            final String name)
@@ -479,7 +482,22 @@ public class VCFFilter extends JFrame
         }
       }
     }
-    
+
+    // Filter out homozygous reference samples, GT - 0/0
+    final JCheckBox showHomozygousMenu = new JCheckBox("Homozygous sample (GT)", vcfView.showHomozygous);
+    c.gridx = 0;
+    c.gridy += 1;
+    c.gridwidth = 2;
+    panel.add(showHomozygousMenu, c);
+    showHomozygousMenu.addActionListener(new ActionListener(){
+      public void actionPerformed(ActionEvent e)
+      {
+        setFlagFilter(HeaderLine.FILTER_HOMOZYG, "FILTER_HOMOZYG", "Homozygous", showHomozygousMenu.isSelected());
+        vcfView.showHomozygous = showHomozygousMenu.isSelected();
+        vcfView.repaint();
+      }
+    });
+    c.gridwidth = 1;
     
     c.gridx = 100;
     c.weightx = 200.d;
@@ -647,10 +665,18 @@ public class VCFFilter extends JFrame
               return false;
             break;
             
-          case HeaderLine.FILTER_MULTALL_FLAG:  // FILTER by quality score
+          case HeaderLine.FILTER_MULTALL_FLAG:
             if( record.getAlt().isMultiAllele(sampleIndex) )
               return false;
             break;
+          case HeaderLine.FILTER_HOMOZYG:
+            final String smpls[] = record.getFormatValues("GT");
+            // look at a specific sample
+            if(smpls != null && 
+               sampleIndex > -1 && smpls[sampleIndex] != null && 
+               HOMOZYGOUS_PATTERN.matcher(smpls[sampleIndex]).matches())
+              return false;
+            break;
           case HeaderLine.FILTER_NONSYN:
             if( !record.getAlt().isDeletion(vcfReader.isVcf_v4()) && 
                 !record.getAlt().isInsertion(vcfReader.isVcf_v4()) && 
diff --git a/uk/ac/sanger/artemis/components/variant/VCFview.java b/uk/ac/sanger/artemis/components/variant/VCFview.java
index 551bc1916ba20c609869878c25cfa2eccdcdb253..7a7d172df16e091f9986dc9580d5a0f20b9a7a31 100644
--- a/uk/ac/sanger/artemis/components/variant/VCFview.java
+++ b/uk/ac/sanger/artemis/components/variant/VCFview.java
@@ -165,6 +165,7 @@ public class VCFview extends JPanel
   protected boolean showDeletions = true;
   protected boolean showInsertions = true;
   protected boolean showMultiAlleles = true;
+  protected boolean showHomozygous = true;
   // show variants that do not overlap CDS
   protected boolean showNonOverlappings = true;
   protected boolean showNonVariants = false;