diff --git a/uk/ac/sanger/artemis/components/DatabaseJFrame.java b/uk/ac/sanger/artemis/components/DatabaseJFrame.java
index c8bb840a3326be62a7fa9a4cc9c9296285d4f676..81d6236b9b39f89beedfe09f49def0d2e687fa44 100644
--- a/uk/ac/sanger/artemis/components/DatabaseJFrame.java
+++ b/uk/ac/sanger/artemis/components/DatabaseJFrame.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/DatabaseJFrame.java,v 1.2 2005-06-01 11:37:04 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/DatabaseJFrame.java,v 1.3 2005-06-01 15:07:31 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components;
@@ -37,6 +37,11 @@ import javax.swing.JSeparator;
 import javax.swing.JMenuBar;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JLabel;
+import javax.swing.BorderFactory;
+import javax.swing.border.Border;
+import java.awt.BorderLayout;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 import java.awt.event.MouseListener;
@@ -45,11 +50,13 @@ import java.awt.event.MouseEvent;
 import java.awt.Dimension;
 import java.awt.Toolkit;
 import java.awt.Cursor;
+import java.awt.FontMetrics;
 import java.io.*;
 import javax.swing.tree.DefaultMutableTreeNode;
 
 public class DatabaseJFrame extends JFrame
 {
+  private JLabel status_line = new JLabel("");
 
   public DatabaseJFrame(final DatabaseEntrySource entry_source,
                         final ArtemisMain art_main)
@@ -76,7 +83,22 @@ public class DatabaseJFrame extends JFrame
 
     setJMenuBar(makeMenuBar(entry_source,tree,art_main));
 
-    getContentPane().add(scroll);
+    JPanel pane = (JPanel)getContentPane();
+    pane.add(scroll, BorderLayout.CENTER);
+
+    final FontMetrics fm =
+      this.getFontMetrics(status_line.getFont());
+
+    final int font_height = fm.getHeight()+10;
+    status_line.setMinimumSize(new Dimension(100, font_height));
+    status_line.setPreferredSize(new Dimension(100, font_height));
+
+    Border loweredbevel = BorderFactory.createLoweredBevelBorder();
+    Border raisedbevel = BorderFactory.createRaisedBevelBorder();
+    Border compound = BorderFactory.createCompoundBorder(raisedbevel,loweredbevel);
+    status_line.setBorder(compound);
+    pane.add(status_line, BorderLayout.SOUTH);
+
     pack();
     Utilities.rightJustifyFrame(this);
   }
@@ -93,15 +115,13 @@ public class DatabaseJFrame extends JFrame
     Cursor cbusy = new Cursor(Cursor.WAIT_CURSOR);
     Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR);
 
-    tree.setCursor(cbusy);
     DefaultMutableTreeNode node = entry_source.getSelectedNode(tree);
-    if(!node.isLeaf())
+    if(node == null || !node.isLeaf())
       return;
+
     String id =  entry_source.getEntryID((String)node.getUserObject());
     if(id != null)
-      getEntryEditFromDatabase(id, entry_source, art_main);
-
-    tree.setCursor(cdone);
+      getEntryEditFromDatabase(id, entry_source, tree, art_main);
   }
 
 
@@ -112,12 +132,18 @@ public class DatabaseJFrame extends JFrame
   */
   private void getEntryEditFromDatabase(final String id,
                                         final DatabaseEntrySource entry_source,
+                                        final JTree tree,
                                         final ArtemisMain art_main)
   {
     SwingWorker entryWorker = new SwingWorker()
     {
       public Object construct()
       {
+        Cursor cbusy = new Cursor(Cursor.WAIT_CURSOR);
+        Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR);
+
+        status_line.setText("Retrieving sequence....");
+        tree.setCursor(cbusy);
         try
         {
           final InputStreamProgressListener progress_listener =
@@ -125,10 +151,15 @@ public class DatabaseJFrame extends JFrame
 
           final Entry entry = entry_source.getEntry(id, progress_listener);
           if(entry == null)
+          {
+            tree.setCursor(cdone);
+            status_line.setText("No entry.");
             return null;
+          }
 
           final EntryEdit new_entry_edit = art_main.makeEntryEdit(entry);
           new_entry_edit.setVisible(true);
+          status_line.setText("Sequence loaded.");
         }
         catch(OutOfRangeException e)
         {
@@ -144,6 +175,7 @@ public class DatabaseJFrame extends JFrame
         {
           new MessageDialog(art_main, "read failed due to IO error: " + e);
         }
+        tree.setCursor(cdone);
         return null;
       }