diff --git a/uk/ac/sanger/artemis/components/variant/IOUtils.java b/uk/ac/sanger/artemis/components/variant/IOUtils.java
index 3486fde5310f2cf3b451e107d93f57972dff12ae..ddae3a9cc66e97d92cb4020e6fbbb561970acc4d 100644
--- a/uk/ac/sanger/artemis/components/variant/IOUtils.java
+++ b/uk/ac/sanger/artemis/components/variant/IOUtils.java
@@ -390,7 +390,7 @@ class IOUtils
     
     if(vcfRecord.getAlt().isDeletion(vcf_v4))
     {
-      int ndel = vcfRecord.getAlt().getNumberOfDeletions(vcf_v4);
+      int ndel = vcfRecord.getAlt().getNumberOfIndels(vcf_v4);
       if(!vcfRecord.getAlt().toString().equals(".") && isFwd)
       {
         buff.append(getBase(vcfRecord.getAlt().toString(), isFwd));
diff --git a/uk/ac/sanger/artemis/components/variant/VariantBase.java b/uk/ac/sanger/artemis/components/variant/VariantBase.java
index aeedb74d42e62554e603e3acea81f1ae33b075a4..f151114087f2e7a559e255045a1115f1ed0f7ab1 100644
--- a/uk/ac/sanger/artemis/components/variant/VariantBase.java
+++ b/uk/ac/sanger/artemis/components/variant/VariantBase.java
@@ -79,16 +79,18 @@ public class VariantBase
     return alt.split(",").length + 1;
   }
 
-  protected int getNumberOfDeletions(boolean vcf_v4)
+  protected int getNumberOfIndels(boolean vcf_v4)
   {
     if (vcf_v4)
     {
       if (alt.equals("."))
         return record.getRef().length();
-      return record.getRef().length() - alt.length();
+      return Math.abs(record.getRef().length() - alt.length());
     }
 
     int index = alt.indexOf("D");
+    if(index < 0)
+      index = alt.indexOf("I");
     int ndel = 0;
     try
     {