diff --git a/uk/ac/sanger/artemis/components/EditMenu.java b/uk/ac/sanger/artemis/components/EditMenu.java
index 2b238810efd5af1b8889b7557fa021af88c869a4..9a56174b75166e7c33b0b3439fd8e041d6feab8c 100644
--- a/uk/ac/sanger/artemis/components/EditMenu.java
+++ b/uk/ac/sanger/artemis/components/EditMenu.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/EditMenu.java,v 1.52 2008-07-09 14:29:52 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/EditMenu.java,v 1.53 2008-07-10 15:15:32 tjc Exp $
  **/
 
 package uk.ac.sanger.artemis.components;
@@ -59,7 +59,7 @@ import java.util.Vector;
  *  A menu with editing commands.
  *
  *  @author Kim Rutherford
- *  @version $Id: EditMenu.java,v 1.52 2008-07-09 14:29:52 tjc Exp $
+ *  @version $Id: EditMenu.java,v 1.53 2008-07-10 15:15:32 tjc Exp $
  **/
 
 public class EditMenu extends SelectionMenu
@@ -372,6 +372,15 @@ public class EditMenu extends SelectionMenu
       }
     });
     
+    final JMenuItem add_translation_qualifier_item = new JMenuItem("Add translation to CDS");
+    add_translation_qualifier_item.addActionListener(new ActionListener() 
+    {
+      public void actionPerformed(ActionEvent event) 
+      {  
+        addTranslationQualifierToCDS(getParentFrame(), getSelection());
+      }
+    });
+    
     final JMenuItem find_and_replace_qualifier_item = new JMenuItem("Find/Replace Qualifier Text ...");
     find_and_replace_qualifier_item.addActionListener(new ActionListener() 
     {
@@ -761,6 +770,8 @@ public class EditMenu extends SelectionMenu
     qualifier_menu.add(add_qualifiers_item);
     qualifier_menu.add(remove_qualifier_item);
     qualifier_menu.add(convert_qualifier_item);
+    qualifier_menu.addSeparator();
+    qualifier_menu.add(add_translation_qualifier_item);
     add(feature_menu);
     feature_menu.add(duplicate_item);
     feature_menu.add(merge_features_item);
@@ -1928,6 +1939,56 @@ public class EditMenu extends SelectionMenu
     }
   }
   
+
+  /**
+   * Add /translastion to selected CDS features.
+   * @param frame
+   * @param selection
+   */
+  private void addTranslationQualifierToCDS(final JFrame frame,
+                                     final Selection selection)
+  {
+    if (!checkForSelectionFeatures (frame, selection))
+      return;
+
+    final FeatureVector selected_features = selection.getAllFeatures ();
+    
+    final FeatureKeyPredicate predicate = 
+      new FeatureKeyPredicate(Key.CDS);
+    
+    for(int i=0; i<selected_features.size(); i++)
+      if(!predicate.testPredicate(selected_features.elementAt(i)))
+      {
+        JOptionPane.showMessageDialog(getParentFrame(),
+            "Not all selected features are CDS features.\n"+
+            "Select just CDS features and try again.", 
+            "Not All CDSs", JOptionPane.WARNING_MESSAGE);
+        return;
+      }
+    
+    entry_group.getActionController().startAction();
+    try
+    {
+      for(int i = 0; i < selected_features.size(); i++)
+      {
+        Feature feature = selected_features.elementAt(i);
+        final String sequence = feature.getTranslation().toString()
+            .toUpperCase();
+        final Qualifier qualifier = new Qualifier("translation", sequence);
+        feature.setQualifier(qualifier);
+      }
+    }        
+    catch(ReadOnlyException e)
+    {
+      e.printStackTrace();
+    }
+    catch(EntryInformationException e)
+    {
+      e.printStackTrace();
+    }
+    entry_group.getActionController().endAction();
+  }
+  
   protected static Vector duplicateGeneFeatures(final JFrame frame,
       final FeatureVector features,
       final EntryGroup entry_group)