diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java
index 321eddcb77b4b67fb442cbf426c5f61ede8aaafd..dee768e5d30a2bd5c2ea40ddeef75c1167d3d60d 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java
@@ -143,7 +143,7 @@ class ControlledCurationBox extends AbstractCvBox
     dateField = new DatePanel(getField("date=", qualifierString),
                               dimension.height);
 
-    xBox.add(dateField.getDateSpinner());
+    xBox.add(dateField);
   }
 
 
diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/DatePanel.java b/uk/ac/sanger/artemis/components/genebuilder/cv/DatePanel.java
index 9c275c9954638262ab828192a5a8093dc032d654..1edf386b70030ebae2f4f1e0c17ae4ff16f02ef2 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/DatePanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/DatePanel.java
@@ -39,25 +39,22 @@ import javax.swing.event.ChangeListener;
 /**
  * Date input panel
  */
-public class DatePanel
+public class DatePanel extends JSpinner
 {
-  private JSpinner spinner;
-  
+  private static final long serialVersionUID = 1L;
+
   public DatePanel(final String date, 
                    final int height)
   {
     this(date);
-    spinner.setMaximumSize(
-        new Dimension(spinner.getPreferredSize().width, height));
+    setMaximumSize(
+        new Dimension(getPreferredSize().width, height));
   }
   
   public DatePanel(final String date)
   {
     Date initDate = getDate(date);
     Calendar calendar = Calendar.getInstance();
-    
-    //if(initDate == null)
-    //  initDate = calendar.getTime();
     calendar.add(Calendar.YEAR, -100);
     Date earliestDate = calendar.getTime();
     calendar.add(Calendar.YEAR, 200);
@@ -69,29 +66,28 @@ public class DatePanel
                                  earliestDate,
                                  latestDate,
                                  Calendar.YEAR);
-      spinner = new JSpinner(model);
-      spinner.setBackground(Color.white);
-      spinner.setEditor(new JSpinner.DateEditor(spinner, "yyyy/MM/dd"));
+      setModel(model);
+      setBackground(Color.white);
+      setEditor(new JSpinner.DateEditor(this, "yyyy/MM/dd"));
     }
     else
     {
       SpinnerListModel model = new SpinnerListModel( new String[] { "", "----/--/--", "" } );
-      spinner = new JSpinner(model);
-      spinner.setBackground(Color.white);
-      spinner.setValue("----/--/--");
+      setModel(model);
+      setBackground(Color.white);
+      setValue("----/--/--");
       model.addChangeListener(new ChangeListener()
       {
         public void stateChanged(ChangeEvent e)
         {
-          if(spinner.getModel() instanceof SpinnerListModel)
+          if(getModel() instanceof SpinnerListModel)
           {
-            spinner.setModel(new SpinnerDateModel());
-            spinner.setEditor(new JSpinner.DateEditor(spinner, "yyyy/MM/dd"));
+            setModel(new SpinnerDateModel());
+            setEditor(new JSpinner.DateEditor(DatePanel.this, "yyyy/MM/dd"));
           }
         }  
       });
-    } 
-
+    }
   }
   
   /**
@@ -116,51 +112,13 @@ public class DatePanel
     return cal.getTime();
   }
   
-  /*class DateVerifier extends InputVerifier 
-  {
-    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
-            "yyyyMMdd");
-    java.util.Calendar cal = java.util.Calendar.getInstance();
-    public DateVerifier() 
-    {
-      sdf.setLenient(false);
-    }
-
-    public boolean verify(JComponent input) 
-    {
-      JFormattedTextField ftf = (JFormattedTextField) input;
-      // allow null entry which will include slashes because of the
-      // mask
-      if(ftf.getText().trim().equals(""))
-      {
-        ftf.setValue( null );
-        return true;
-      }
-        
-      try 
-      {
-        cal.setTime(sdf.parse(ftf.getText()));
-      }
-      catch (Exception pe) 
-      {
-        return false;
-      }
-      return true;
-    }
-  }*/
-
-  public JSpinner getDateSpinner()
-  {
-    return spinner;
-  }
-  
-  public String getText()
+  protected String getText()
   { 
-    if(spinner.getModel() instanceof SpinnerDateModel)
+    if(getModel() instanceof SpinnerDateModel)
     {
       java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
       "yyyyMMdd");
-      Date date = ((SpinnerDateModel)spinner.getModel()).getDate();
+      Date date = ((SpinnerDateModel)getModel()).getDate();
       return sdf.format(date);
     }
     return "";
@@ -173,5 +131,4 @@ public class DatePanel
     Date date = new Date();
     return sdf.format(date);
   }
-  
-}
\ No newline at end of file
+}
diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
index c49399ba0c85c08eb76edd23e051f88e0225518a..be3f01019a22fee43d226948b80f0537b574e5e0 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java
@@ -244,7 +244,7 @@ public class GoBox extends AbstractCvBox
                                         dimension.height); 
     
     editable.add(dateField);
-    xBox.add(dateField.getDateSpinner());
+    xBox.add(dateField);
   }
   
   public static CvTerm getGOCvTerm(String term)
diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
index 2c619898c38dbb67b1ab789d7a5eedb704b6d8f3..1af0e8fc14fdbb309a0d44c031a1cb61f6b921e4 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
@@ -115,7 +115,7 @@ public class HistoryBox extends AbstractCvBox
     dateField = new DatePanel(getField("date=", qualifierString),
                               dimension.height);
 
-    lineBox.add(dateField.getDateSpinner());
+    lineBox.add(dateField);
     lineBox.add(Box.createHorizontalGlue());
     yBox.add(lineBox);
     
@@ -124,7 +124,7 @@ public class HistoryBox extends AbstractCvBox
     Dimension dimension4 = new Dimension(
         termCombo.getPreferredSize().width+
         curatorNameField.getPreferredSize().width+
-        dateField.getDateSpinner().getPreferredSize().width-5, dimension.height*20);
+        dateField.getPreferredSize().width-5, dimension.height*20);
     qual = getFieldIgnoreSeparator("qualifier", qualifierString);
     qualfTextField = new QualifierTextArea();
     qualfTextField.setUseHyperlinks(false);