diff --git a/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java b/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java
index f7e854f25decaf52c4aef3b2a977a025d4e05a04..a3b94a6498c8137d9834231c01995a603b0e1521 100644
--- a/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java
+++ b/uk/ac/sanger/artemis/circular/digest/CircularGenomeController.java
@@ -40,9 +40,11 @@ import java.awt.event.MouseEvent;
 import java.awt.event.MouseMotionAdapter;
 import java.awt.event.MouseMotionListener;
 import java.io.File;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
+import java.util.Vector;
 
 import javax.swing.JFrame;
 import javax.swing.JOptionPane;
@@ -63,10 +65,12 @@ public class CircularGenomeController
 	 * Create in-silico PFGE from a restriction enzyme digest and draw
 	 * alongside DNAPlotter
 	 */
-	protected void setup(CircularGenomeCommandBean cgcb, String fileName) throws Exception
+	protected void setup(CircularGenomeCommandBean cgcb, List<String> fileNames) 
+	          throws Exception
 	{
 		try
 		{
+			String fileName = fileNames.get(0);
 			EntryGroup entryGroup = getEntryGroupFromFile(fileName);		
 			if(fileName == null)
 			{
@@ -114,7 +118,8 @@ public class CircularGenomeController
 			}
 			p.waitFor();
 			
-			final ReportDetails rd = Utils.findCutSitesFromEmbossReport(output.getCanonicalPath());
+			final ReportDetails rd = Utils.findCutSitesFromEmbossReport(
+					new FileReader(output.getCanonicalPath()));
 
 			if (rd.cutSites.size() == 0)
 				JOptionPane.showMessageDialog(null,
@@ -173,8 +178,10 @@ public class CircularGenomeController
 	    Dimension d = f.getToolkit().getScreenSize();
 
 	    JPanel mainPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
+	    JScrollPane jspDNA = new JScrollPane(dna);
+	    
 	    mainPanel.add(inSilicoGelPanel);
-	    mainPanel.add(dna);
+	    mainPanel.add(jspDNA);
 	    
 	    JScrollPane jsp = new JScrollPane(mainPanel);
 	    jsp.getViewport().setBackground(Color.white);
@@ -288,21 +295,28 @@ public class CircularGenomeController
 		CircularGenomeController controller = new CircularGenomeController();
 		try
 		{
-			String fileName = null;
+			List fileNames = null;
 			if(args != null && args.length > 0)
 			{
 				if(args.length == 1)
-		  		fileName = args[0];
+				{
+					fileNames = new Vector();
+					fileNames.add(args[0]);
+				}
 				
 				for(int i=0; i<args.length; i++)
 				{
 					if(args[i].startsWith("-enz"))
 						command.setEnzymeName(args[i+1]);
 					else if(args[i].startsWith("-seq"))
-						fileName = args[i+1];
+					{
+						if(fileNames == null)
+							fileNames = new Vector();
+						fileNames.add(args[i+1]);
+					}
 				}
 			}
-			controller.setup(command, fileName);
+			controller.setup(command, fileNames);
 		} 
 		catch (Exception e)
 		{
diff --git a/uk/ac/sanger/artemis/circular/digest/Utils.java b/uk/ac/sanger/artemis/circular/digest/Utils.java
index fd19e72fd3b6c2ff2a9adc4d9c1f9dbdc5ce3cbd..fb4addab7d2bb924ef89922b854c56b63826da9e 100644
--- a/uk/ac/sanger/artemis/circular/digest/Utils.java
+++ b/uk/ac/sanger/artemis/circular/digest/Utils.java
@@ -30,8 +30,8 @@ import uk.ac.sanger.artemis.io.QualifierVector;
 import uk.ac.sanger.artemis.sequence.MarkerRange;
 
 import java.io.BufferedReader;
-import java.io.FileReader;
 import java.io.IOException;
+import java.io.Reader;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
@@ -41,16 +41,17 @@ public class Utils
 {
 	//private static final Logger logger = Logger.getLogger(Utils.class);
 
-	public static ReportDetails findCutSitesFromEmbossReport(String fileName)
+	protected static ReportDetails findCutSitesFromEmbossReport(Reader reader)
 	{
 		EmbossTableParser etp = new EmbossTableParser();
 		ReportDetails ret = new ReportDetails();
 		try
 		{
-			BufferedReader br = new BufferedReader(new FileReader(fileName));
+			BufferedReader br = new BufferedReader(reader);
 			ret.cutSites = etp.parse(br);
 			ret.length = etp.getLength();
-		} catch (IOException exp)
+		}
+		catch (IOException exp)
 		{
 			throw new RuntimeException("Couldn't read, or parse results");
 		}
@@ -64,7 +65,7 @@ public class Utils
 	 * @param entryGroup
 	 * @return
 	 */
-	public static DNADraw createDNADrawFromReportDetails(final ReportDetails rd, 
+	protected static DNADraw createDNADrawFromReportDetails(final ReportDetails rd, 
 			                                                 final EntryGroup entryGroup)
 	{
 		DNADraw dna = new DNADraw();