diff --git a/uk/ac/sanger/artemis/components/variant/BCFReader.java b/uk/ac/sanger/artemis/components/variant/BCFReader.java
index 38bd15820ec581cc5dca612f35d3017cf9b9c57b..42c1d24844b7b8e2a3e5d433734d155a040bb5ed 100644
--- a/uk/ac/sanger/artemis/components/variant/BCFReader.java
+++ b/uk/ac/sanger/artemis/components/variant/BCFReader.java
@@ -298,6 +298,50 @@ class BCFReader extends AbstractVCFReader
    * @return
    */
   private void getParts(final byte[] b, final VCFRecord bcfRecord)
+  {
+    int index = 0;
+    final StringBuilder buff = new StringBuilder();
+    
+    for(int i=0; i<b.length; i++)
+    {
+      if(b[i] == 0 && (i == 0 || b[i-1] == 0) )
+      {
+        switch( index )
+        {
+          case 0:  bcfRecord.setID("."); break;
+          case 1:  bcfRecord.setRef("."); break;
+          case 2:  bcfRecord.setAlt(":"); break; // this looks like a non-variant site
+          case 3:  bcfRecord.setFilter("."); break;
+          case 4:  bcfRecord.setInfo("."); break;
+          case 5:  bcfRecord.setFormat("."); break;
+          default: return;
+        }
+        index++;
+      }
+      if(b[i] == 0)
+        continue;
+      
+      buff.setLength(0);
+      buff.append((char)b[i]);
+      while(i < b.length-1 && b[i+1] != 0)
+        buff.append((char)b[++i]);
+
+      switch( index )
+      {
+        case 0:  bcfRecord.setID(buff.toString()); break;
+        case 1:  bcfRecord.setRef(buff.toString()); break;
+        case 2:  bcfRecord.setAlt(buff.toString()); break;
+        case 3:  bcfRecord.setFilter(buff.toString()); break;
+        case 4:  bcfRecord.setInfo(buff.toString()); break;
+        case 5:  bcfRecord.setFormat(buff.toString()); break;
+        default: return;
+      }
+      index++;
+    }
+  }
+  
+
+  /*private void getParts(final byte[] b, final VCFRecord bcfRecord)
   {
     final StringBuilder buff = new StringBuilder();
     for(int i=0; i<b.length; i++)
@@ -336,7 +380,7 @@ class BCFReader extends AbstractVCFReader
       lastInd = ind;
       i++;
     }
-  }
+  }*/
   
   /**
    * DP uint16 t[n] Read depth