diff --git a/test/uk/ac/sanger/artemis/io/Utils.java b/test/uk/ac/sanger/artemis/io/Utils.java
index ab840fef067fe8e6c0bb8ab546f473717cad7ba3..b7a10ef9185f7366cc10de45146215586206a9eb 100644
--- a/test/uk/ac/sanger/artemis/io/Utils.java
+++ b/test/uk/ac/sanger/artemis/io/Utils.java
@@ -34,6 +34,8 @@ import uk.ac.sanger.artemis.SimpleEntryGroup;
 import uk.ac.sanger.artemis.io.DocumentEntryFactory;
 import uk.ac.sanger.artemis.io.Entry;
 import uk.ac.sanger.artemis.io.EntryInformationException;
+import uk.ac.sanger.artemis.io.InvalidRelationException;
+import uk.ac.sanger.artemis.io.Qualifier;
 import uk.ac.sanger.artemis.sequence.AminoAcidSequence;
 import uk.ac.sanger.artemis.sequence.Bases;
 import uk.ac.sanger.artemis.sequence.NoSequenceException;
@@ -85,6 +87,37 @@ public class Utils
     return null;
   }
   
+  /**
+   * Get a CDS feature with the feature ID prefix
+   * @param featureName
+   * @param features
+   * @return
+   */
+  public static Feature getCDSFeatureByIdPrefix(
+                 final String id,
+                 final FeatureVector features)
+  {
+    try
+    {
+      for (int i=0; i<features.size(); i++)
+      {
+        Feature f = features.elementAt(i);
+        final Qualifier q = f.getQualifierByName("ID");
+        if (q != null)
+        {
+          final String thisId = q.getValues().get(0);
+          if (thisId.startsWith(id) && f.isCDS())
+            return f;
+        }
+      }
+    }
+    catch(InvalidRelationException e) 
+    {
+      Assert.fail(e.getMessage());
+    }
+    return null;
+  }
+  
   /**
    * Method to change the translation table being used
    * @param n - genetic code table number