diff --git a/uk/ac/sanger/artemis/j2ssh/SshPSUClient.java b/uk/ac/sanger/artemis/j2ssh/SshPSUClient.java
index 5bd51058829732a707ce9bf89e771863761db83e..a686369ecbfa8b877e42f54b44dc8fbdcc66be04 100644
--- a/uk/ac/sanger/artemis/j2ssh/SshPSUClient.java
+++ b/uk/ac/sanger/artemis/j2ssh/SshPSUClient.java
@@ -24,6 +24,7 @@
 
 package uk.ac.sanger.artemis.j2ssh;
 
+import uk.ac.sanger.artemis.Options;
 import uk.ac.sanger.artemis.components.MessageDialog;
 
 import javax.swing.JFileChooser;
@@ -68,6 +69,7 @@ public class SshPSUClient extends Thread
   private SshClient ssh;
   private String user;
   private boolean keep = false;
+  private boolean zipResults = false;
   
   //
   StdoutStdErrHandler stdouth;
@@ -273,6 +275,14 @@ public class SshPSUClient extends Thread
         db = "%uniprot";
     } 
 
+    if(settings.getProperty("zip") != null)
+    {
+      String zipValue = settings.getProperty("zip");
+      zipResults = Boolean.parseBoolean(zipValue);
+      
+      logger4j.debug("zip results :: "+zipResults);
+    }
+    
     if(wdir == null && settings.getProperty("wdir") != null)
       wdir = settings.getProperty("wdir");
 
@@ -494,11 +504,19 @@ public class SshPSUClient extends Thread
       }
 
       logger4j.debug("GET SUCCESS "+filepath+".out");
-
+      sftp.rm(wdir+filename);
+      
       if(!keep)
       {
         sftp.rm(outputfile);
-        sftp.rm(wdir+filename);
+      }
+      else if(zipResults)
+      {
+        cmd = "gzip "+outputfile+"; zip -j "+wdir+program+".zip "+
+                                    outputfile+".gz; rm -f "+outputfile+".gz";
+        logger4j.debug(cmd);
+        SshPSUClient sshClient = new SshPSUClient(cmd);
+        sshClient.start();
       }
       sftp = getSftpClient();
       sftp.rm(outputfile+".err");