diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java b/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java
index f3d11fe57d454fc7387dc8c1da4b3a3b26d33690..d62a5427b6bc336fcad529071c52502942727dd4 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java
@@ -151,14 +151,8 @@ public class CVPanel extends JPanel
         
         addHideShowButton(yBox, hide_show_GO);
         
-        Box xLabel = Box.createHorizontalBox();
-        JLabel lab = new JLabel("GO terms");
-        lab.setFont(lab.getFont().deriveFont(Font.BOLD));
-        xLabel.add(lab);
-        xLabel.add(Box.createHorizontalGlue());
-        xLabel.add(hide_show_GO);
-
-        cvBox.add(xLabel);
+        Box xHeadings = Box.createHorizontalBox();
+        cvBox.add(xHeadings);
         
         n++;
         final StringVector qualifier_strings = this_qualifier.getValues();
@@ -182,6 +176,35 @@ public class CVPanel extends JPanel
           
           yBox.add(xBox);
         }
+        
+        // add column headings
+        JLabel lab = new JLabel("GO terms");
+        lab.setPreferredSize(go_dimension);
+        lab.setFont(lab.getFont().deriveFont(Font.BOLD));
+        xHeadings.add(lab);
+        final JLabel withLabel = new JLabel("WITH/FROM");
+        withLabel.setPreferredSize(dimension);
+        xHeadings.add(withLabel);
+        
+        final JLabel dbxrefLabel = new JLabel("Dbxref");
+        dbxrefLabel.setPreferredSize(dimension);
+        xHeadings.add(dbxrefLabel);
+        
+        final JLabel evidenceLabel = new JLabel("Evidence");
+        evidenceLabel.setPreferredSize(GoBox.getEvidenceListDimension());
+        xHeadings.add(evidenceLabel);
+        
+        final JLabel qualLabel = new JLabel("Qualifier");
+        qualLabel.setPreferredSize(dimension);
+        xHeadings.add(qualLabel);
+        
+        final JLabel dateLabel = new JLabel("Date");
+        xHeadings.add(dateLabel);
+        
+        xHeadings.add(Box.createHorizontalGlue());
+        xHeadings.add(hide_show_GO);
+              
+        // add go rows
         cvBox.add(yBox);
         if(hide_show_GO.getText().equals("+"))
           yBox.setVisible(false);
@@ -216,6 +239,9 @@ public class CVPanel extends JPanel
         xLabel.add(hide_show_CC);
         cvBox.add(xLabel);
         
+        Box xHeadings = Box.createHorizontalBox();
+        cvBox.add(xHeadings);
+        
         for(int value_index = 0; value_index < qualifier_strings.size();
             ++value_index)
         {
@@ -236,6 +262,32 @@ public class CVPanel extends JPanel
           xBox.add(getRemoveButton(this_qualifier, v_index));         
           yBox.add(xBox);
         }
+        
+        // add column headings
+        final JLabel termLabel = new JLabel("Term");
+        termLabel.setPreferredSize(
+            new Dimension(go_dimension.width+dimension.width,
+                          dimension.height));
+        xHeadings.add(termLabel);
+        
+        final JLabel dbxrefLabel = new JLabel("Dbxref");
+        dbxrefLabel.setPreferredSize(dimension);
+        xHeadings.add(dbxrefLabel);
+        
+        final JLabel evidenceLabel = new JLabel("Evidence");
+        evidenceLabel.setPreferredSize(GoBox.getEvidenceListDimension());
+        xHeadings.add(evidenceLabel);
+        
+        final JLabel qualLabel = new JLabel("Qualifier");
+        qualLabel.setPreferredSize(dimension);
+        xHeadings.add(qualLabel);
+        
+        final JLabel dateLabel = new JLabel("Date");
+        xHeadings.add(dateLabel);
+        
+        xHeadings.add(Box.createHorizontalGlue());
+        
+        // add CC rows
         cvBox.add(yBox); 
         if(hide_show_CC.getText().equals("+"))
           yBox.setVisible(false);
diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
index 6453a0d2dd40803f5def317c62d5041c708d9fb2..b30c0f91e384387c71707e19a67b59d472601421 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
@@ -79,6 +79,8 @@ class GoBox extends AbstractCvBox
   };
   
   private Dimension go_dimension;
+  private static Dimension evidenceListDimension;
+  
   private Box xBox;
   private int value_index;
   private JTextField withTextField;
@@ -174,10 +176,10 @@ class GoBox extends AbstractCvBox
     evidenceList.setToolTipText("evidence column");
     evidenceList.setSelectedIndex( getEvidenceIndex(evidence) );
   
-    Dimension d = evidenceList.getPreferredSize();
-    d = new Dimension(80,(int)d.getHeight());
-    evidenceList.setPreferredSize(d);
-    evidenceList.setMaximumSize(d);
+    evidenceListDimension = evidenceList.getPreferredSize();
+    evidenceListDimension = new Dimension(80,(int)evidenceListDimension.getHeight());
+    evidenceList.setPreferredSize(evidenceListDimension);
+    evidenceList.setMaximumSize(evidenceListDimension);
     evidenceList.setActionCommand("evidence=");
     editable.add(evidenceList);
     xBox.add(evidenceList);
@@ -192,7 +194,7 @@ class GoBox extends AbstractCvBox
     xBox.add(qualfTextField);
     
     dateField = new DatePanel( getField("date=", qualifierString), 
-                               d.height); 
+                                        evidenceListDimension.height); 
     
     editable.add(dateField);
     xBox.add(dateField.getDateSpinner());
@@ -332,5 +334,10 @@ class GoBox extends AbstractCvBox
     
     return newQualifierString;
   }
+
+  public static Dimension getEvidenceListDimension()
+  {
+    return evidenceListDimension;
+  }
   
 }
\ No newline at end of file