diff --git a/uk/ac/sanger/artemis/ExternalProgram.java b/uk/ac/sanger/artemis/ExternalProgram.java
index 48161600ded0b98942e27d657e5dc48512577d54..9c6cf10c9ca8b9fc3be4427d9d894cea00dd6042 100644
--- a/uk/ac/sanger/artemis/ExternalProgram.java
+++ b/uk/ac/sanger/artemis/ExternalProgram.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/ExternalProgram.java,v 1.19 2008-07-24 13:50:51 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/ExternalProgram.java,v 1.20 2009-05-13 15:47:52 tjc Exp $
  **/
 
 package uk.ac.sanger.artemis;
@@ -29,27 +29,22 @@ import uk.ac.sanger.artemis.util.*;
 import uk.ac.sanger.artemis.io.EntryInformation;
 import uk.ac.sanger.artemis.io.EntryInformationException;
 import uk.ac.sanger.artemis.io.DocumentEntry;
-import uk.ac.sanger.artemis.components.SwingWorker;
-import uk.ac.sanger.artemis.components.Utilities;
+import uk.ac.sanger.artemis.components.ProgressBarFrame;
 import uk.ac.sanger.artemis.components.filetree.RemoteFileNode;
 import uk.ac.sanger.artemis.j2ssh.FileTransferProgressMonitor;
 import uk.ac.sanger.artemis.j2ssh.FTProgress;
 
-import java.awt.Color;
 import java.io.*;
 import java.text.*;
 import java.util.Hashtable;
 import java.util.Enumeration;
 
-import javax.swing.JFrame;
-import javax.swing.JProgressBar;
-
 /**
  *  Each object of this class represents one external executable or script,
  *  and contains methods for invoking it.
  *
  *  @author Kim Rutherford
- *  @version $Id: ExternalProgram.java,v 1.19 2008-07-24 13:50:51 tjc Exp $
+ *  @version $Id: ExternalProgram.java,v 1.20 2009-05-13 15:47:52 tjc Exp $
  **/
 
 public class ExternalProgram 
@@ -200,7 +195,7 @@ public class ExternalProgram
           uk.ac.sanger.artemis.j2ssh.SshPSUClient ssh =
                 new uk.ac.sanger.artemis.j2ssh.SshPSUClient(args);
           ssh.start();
-          nowSendingProgressBar();
+          new ProgressBarFrame(1, getName());
           return null;
         }
 
@@ -232,7 +227,7 @@ public class ExternalProgram
 
         //
         //
-        nowSendingProgressBar();
+        new ProgressBarFrame(1, getName());
         return new ProcessMonitor(process, getName(), logger);
       } 
       catch(SecurityException e) 
@@ -245,43 +240,6 @@ public class ExternalProgram
 //  }
   }
   
-  /**
-   * Let the user know the process is being run with a progress bar
-   */
-  private void nowSendingProgressBar()
-  {
-    final JFrame fsend = new JFrame();
-    fsend.setUndecorated(true);
-    final int max = 25;
-    final JProgressBar progressBar = new JProgressBar(0,max);
-    progressBar.setStringPainted(true);
-    progressBar.setString("Sending "+getName()+" process now!");
-    progressBar.setBackground(Color.white);
-
-    SwingWorker batchWorker = new SwingWorker()
-    {
-      public Object construct()
-      {
-        try
-        {
-          for(int i=0; i<max; i++)
-          {
-            Thread.sleep(40);
-            progressBar.setValue(i);
-          }
-          fsend.dispose();
-        }
-        catch(InterruptedException intr){}
-        return null;
-      }
-    };
-
-    fsend.getContentPane().add(progressBar);
-    fsend.pack();
-    Utilities.centreFrame(fsend);
-    fsend.setVisible(true);
-    batchWorker.start();
-  }
 
   /**
    *  Write sequence files for each of the given features and add a
diff --git a/uk/ac/sanger/artemis/components/ProgressBarFrame.java b/uk/ac/sanger/artemis/components/ProgressBarFrame.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3b88ae4f7594ea3feea78c85c94b004b189a199
--- /dev/null
+++ b/uk/ac/sanger/artemis/components/ProgressBarFrame.java
@@ -0,0 +1,69 @@
+/* ExternalProgram.java
+ *
+ * created: 2009
+ *
+ * This file is part of Artemis
+ *
+ * Copyright(C) 2009  Genome Research Limited
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or(at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ **/
+package uk.ac.sanger.artemis.components;
+
+import java.awt.Color;
+
+import javax.swing.JFrame;
+import javax.swing.JProgressBar;
+
+public class ProgressBarFrame extends JFrame
+{
+  private static final long serialVersionUID = 1L;
+
+  public ProgressBarFrame(int seconds, String name)
+  {
+    super();
+    setUndecorated(true);
+    final int max = (seconds*1000)/40;
+    final JProgressBar progressBar = new JProgressBar(0,max);
+    progressBar.setStringPainted(true);
+    progressBar.setString("Sending "+name+" process now!");
+    progressBar.setBackground(Color.white);
+
+    SwingWorker batchWorker = new SwingWorker()
+    {
+      public Object construct()
+      {
+        try
+        {
+          for(int i=0; i<max; i++)
+          {
+            Thread.sleep(40);
+            progressBar.setValue(i);
+          }
+          dispose();
+        }
+        catch(InterruptedException intr){}
+        return null;
+      }
+    };
+
+    getContentPane().add(progressBar);
+    pack();
+    Utilities.centreFrame(this);
+    setVisible(true);
+    batchWorker.start();
+  }
+}
\ No newline at end of file