diff --git a/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java b/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java
index e9397af0e3ea1ebaec8740f9ab0c2bf988a8200b..4bc8ebb41626b8929f70bacea44c7530b04ca64f 100644
--- a/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java
+++ b/uk/ac/sanger/artemis/components/database/DatabaseJPanel.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/database/DatabaseJPanel.java,v 1.12 2007-10-24 17:35:58 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java,v 1.13 2008-01-18 15:54:47 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.database;
@@ -50,6 +50,7 @@ import javax.swing.border.Border;
 import javax.swing.tree.TreePath;
 
 import org.gmod.schema.organism.Organism;
+import org.gmod.schema.sequence.Feature;
 
 import java.awt.BorderLayout;
 import java.awt.event.ActionListener;
@@ -160,6 +161,35 @@ public class DatabaseJPanel extends JPanel
     {
     }
   }
+  
+  /**
+   * Open an Artemis EntryEdit window
+   * @param entry_source
+   * @param splash_main
+   * @param stream_progress_listener
+   * @param entryName                 e.g. Pfalciparum:Pf3D7_09
+   * @return
+   */
+  public static EntryEdit show(final DatabaseEntrySource entry_source,
+                          final Splash splash_main,
+                          final InputStreamProgressListener stream_progress_listener,
+                          final String entryName)
+  {
+    final String entry[] = entryName.split(":");
+    String url = (String)entry_source.getLocation();
+    int index  = url.indexOf("?");
+    
+    String userName = url.substring(index+1).trim();
+    if(userName.startsWith("user="))
+      userName = userName.substring(5);
+    
+    DatabaseDocument doc = entry_source.getDatabaseDocument();
+    Feature f = doc.getFeatureByUniquename(entry[1]);
+    
+    return openEntry(Integer.toString(f.getFeatureId()), entry_source, 
+        splash_main.getCanvas(), splash_main.getStatusLabel(), stream_progress_listener,
+        false, splash_main,  entry[1], userName);
+  }
 
   /**
    * Retrieve a database entry.
@@ -224,7 +254,7 @@ public class DatabaseJPanel extends JPanel
   }
 
   
-  private static void openEntry(
+  private static EntryEdit openEntry(
       final String srcfeatureId,
       final DatabaseEntrySource entry_source, 
       final JComponent srcComponent,
@@ -252,7 +282,7 @@ public class DatabaseJPanel extends JPanel
       {
         srcComponent.setCursor(cdone);
         status_line.setText("No entry.");
-        return;
+        return null;
       }
 
       final EntryEdit new_entry_edit = ArtemisMain.makeEntryEdit(entry);
@@ -275,6 +305,7 @@ public class DatabaseJPanel extends JPanel
 
       new_entry_edit.setVisible(true);
       status_line.setText("Sequence loaded.");
+      return new_entry_edit;
     }
     catch(OutOfRangeException e)
     {
@@ -290,6 +321,7 @@ public class DatabaseJPanel extends JPanel
     {
       new MessageDialog(splash_main, "read failed due to IO error: " + e);
     }
+    return null;
   }