diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
index 52338e5ce2912d9c527950b075628ba334b26fe7..2cecf326ee985d5e1cc7a171713647ac543a47ec 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
@@ -181,7 +181,7 @@ class HistoryBox extends AbstractCvBox
       if(newTerm.equals(term))
         values_index.add(new Integer(i));
     }
-  
+    
     if(values_index.size() > 0)
     { 
       String oldValue = (String) oldValues.get(value_index);
@@ -190,7 +190,7 @@ class HistoryBox extends AbstractCvBox
       if(!term.equals(oldTermId))
       {
         if(values_index.size() == 1)
-        value_index = ((Integer)values_index.get(0)).intValue();
+          value_index = ((Integer)values_index.get(0)).intValue();
         else
         {
           final String with = getField("with=", origQualifierString);
@@ -240,7 +240,6 @@ class HistoryBox extends AbstractCvBox
   private String updateQualifierString()
   {
     String newQualifierString = origQualifierString;
-    
     String old = getField("term=", origQualifierString);
     if(!old.equals(dateField.getText()))
     {
@@ -265,11 +264,13 @@ class HistoryBox extends AbstractCvBox
     old = getFieldIgnoreSeparator("qualifier", origQualifierString);
     if(!old.equals(qualfTextField.getText()))
     {
+      newQualifierString = newQualifierString.replaceAll(old, "");
       newQualifierString = newQualifierString.replaceAll("qualifier=[^;]+", "");
-      newQualifierString = newQualifierString.replaceAll("[;]+", ";");
+      newQualifierString = newQualifierString.replaceAll("qualifier=", "");
+      newQualifierString = newQualifierString.replaceAll("[;]{2,}", ";");
       newQualifierString += ";qualifier="+qualfTextField.getText().trim();
     }
-    
+
     return newQualifierString;
   }