diff --git a/art b/art
index 136ccc59ee81c08f29c38a4ae18eeacae322603c..c5c6cf31eec64696dd2627d6f0c3db400780b648 100755
--- a/art
+++ b/art
@@ -90,22 +90,24 @@ SYNOPSIS
 USAGE
         $0 [options] <SEQUENCE_FILE> [+FEATURE_FILE ...]
 OPTIONS
-        SEQUENCE_FILE              An EMBL, GenBank, FASTA, or GFF3 file
-        FEATURE_FILE               An Artemis TAB file, or GFF file
-
-        -options FILE              Read a text file of options from FILE
-        -debug                     Run using the debugging JVM instead
-        -fast | -fast64            Use the FastVM (hp Tru64 UNIX) with 32/64 bit pointers
-
-        -Dblack_belt_mode=?        Keep warning messages to a minimum [true,false]
-        -Doffset=XXX               Open viewer at base position XXX [integer >= 1]
-        -Duserplot=FILE[,FILE2]    Open one or more userplots
-        -Dloguserplot=FILE[,FILE2] Open one or more userplots, take log(data)
-        -Dbam=FILE[,FILE2,...]     Open one or more BAM, VCF or BCF files
-        -Dshow_forward_lines=?     Hide/show forward frame lines [true,false]
-        -Dshow_reverse_lines=?     Hide/show reverse frame lines [true,false]
-        -Dchado="h:p/d?u"          Get Artemis to open this CHADO database
-        -Dread_only                Open CHADO database read-only
+        SEQUENCE_FILE                  An EMBL, GenBank, FASTA, or GFF3 file
+        FEATURE_FILE                   An Artemis TAB file, or GFF file
+
+        -options FILE                  Read a text file of options from FILE
+        -debug                         Run using the debugging JVM instead
+        -fast | -fast64                Use the FastVM (hp Tru64 UNIX) with 32/64 bit pointers
+
+        -Dblack_belt_mode=?            Keep warning messages to a minimum [true,false]
+        -Doffset=XXX                   Open viewer at base position XXX [integer >= 1]
+        -Duserplot=FILE[,FILE2]        Open one or more userplots
+        -Dloguserplot=FILE[,FILE2]     Open one or more userplots, take log(data)
+        -Dbam=FILE[,FILE2,...]         Open one or more BAM, VCF or BCF files
+        -DbamClone=n                   Open all BAMs in multiple (n > 1) panels
+        -Dbam[1,2,..]=FILE[,FILE2,..]  Open BAMs in separate panels
+        -Dshow_forward_lines=?         Hide/show forward frame lines [true,false]
+        -Dshow_reverse_lines=?         Hide/show reverse frame lines [true,false]
+        -Dchado="h:p/d?u"              Get Artemis to open this CHADO database
+        -Dread_only                    Open CHADO database read-only
 EXAMPLES
         % art AJ006275.embl 
         % art contigs.fa +annotation.gff +islands.tab
diff --git a/etc/versions b/etc/versions
index 4f2ed2712986c1e9d3057b3bb08d3119a3456e8b..8454454f1b0a6a0b6e683c2ccfd5f018f30843ca 100644
--- a/etc/versions
+++ b/etc/versions
@@ -1,4 +1,4 @@
-Artemis Release 14.3.1
-ACT Release 11.3.1
+Artemis Release 14.3.2
+ACT Release 11.3.2
 DNAPlotter Release 1.10
 BamView 1.2.8
diff --git a/uk/ac/sanger/artemis/components/BasePlotGroup.java b/uk/ac/sanger/artemis/components/BasePlotGroup.java
index 56f89832aad2390343560218bf599055bd9a3493..0de7102b6827cd7b651a028c079437e783ea78db 100644
--- a/uk/ac/sanger/artemis/components/BasePlotGroup.java
+++ b/uk/ac/sanger/artemis/components/BasePlotGroup.java
@@ -248,7 +248,7 @@ public class BasePlotGroup extends JPanel
       JOptionPane.showMessageDialog(this, 
           closingPlots.toString()+
           "\nAs the sequence is changing the above user plot(s) are closing as they are\n"+
-          "not indexed with multiple sequences. You can load in the correponding plot\n"+
+          "not indexed with multiple sequences. You can load in the corresponding plot\n"+
           "for the new sequence.", 
           "Closing Userplot", JOptionPane.INFORMATION_MESSAGE);
     }
diff --git a/uk/ac/sanger/artemis/components/EntryEdit.java b/uk/ac/sanger/artemis/components/EntryEdit.java
index c08986ed2749edb894436b5157c7bbd478694231..18bee7ed85f3d9fe0680fc0050b97008586bc39b 100644
--- a/uk/ac/sanger/artemis/components/EntryEdit.java
+++ b/uk/ac/sanger/artemis/components/EntryEdit.java
@@ -2011,7 +2011,7 @@ public class EntryEdit extends JFrame
   
   private void printMenu()
   {
-    JMenuItem printImage = new JMenuItem("Save As Image Files (png/jpeg)...");
+    JMenuItem printImage = new JMenuItem("Save As Image Files (png/svg)...");
     printImage.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
diff --git a/uk/ac/sanger/artemis/components/MultiComparator.java b/uk/ac/sanger/artemis/components/MultiComparator.java
index 9621c52fdfc2dd95fba4cf96ab993eb00b6fda90..b870030f461b5144d86b13b002274a71c53680c2 100644
--- a/uk/ac/sanger/artemis/components/MultiComparator.java
+++ b/uk/ac/sanger/artemis/components/MultiComparator.java
@@ -621,13 +621,10 @@ public class MultiComparator extends JFrame
     /*final JMenu write_menu = new JMenu("Write");
     write_menu.setMnemonic(KeyEvent.VK_W);
     menu_bar.add(write_menu);*/
-    JMenu run_menu = null;
-    if(Options.isUnixHost()) 
-    {
-      run_menu = new JMenu("Run");
-      run_menu.setMnemonic(KeyEvent.VK_R);
-      menu_bar.add(run_menu);
-    }
+    JMenu run_menu = new JMenu("Run");
+    run_menu.setMnemonic(KeyEvent.VK_R);
+    menu_bar.add(run_menu);
+   
     final JMenu graph_menu = new JMenu("Graph");
     graph_menu.setMnemonic(KeyEvent.VK_G);
     menu_bar.add(graph_menu);
@@ -705,14 +702,10 @@ public class MultiComparator extends JFrame
                       sub_menu_name);
         create_menu.add(this_create_menu);
 
-        if(Options.isUnixHost()) 
-        {
-          final RunMenu this_run_menu =
-            new RunMenu(this,
-                         getSelectionArray()[i],
+        final RunMenu this_run_menu =
+            new RunMenu(this, getSelectionArray()[i],
                          sub_menu_name);
-          run_menu.add(this_run_menu);
-        }
+        run_menu.add(this_run_menu);
       }
 
       final GraphMenu this_graph_menu =
@@ -768,7 +761,7 @@ public class MultiComparator extends JFrame
    **/ 
   private void printMenu()
   {
-    JMenuItem printImage = new JMenuItem("Save As Image Files (png/jpeg)...");
+    JMenuItem printImage = new JMenuItem("Save As Image Files (png/svg)...");
     printImage.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
diff --git a/uk/ac/sanger/artemis/components/Splash.java b/uk/ac/sanger/artemis/components/Splash.java
index 96a7aaaf2c9d698d46764b5715d6ac40d02e11a4..333a1fc5b2297ccdce179d4b78f1a9ed9171727d 100644
--- a/uk/ac/sanger/artemis/components/Splash.java
+++ b/uk/ac/sanger/artemis/components/Splash.java
@@ -324,7 +324,8 @@ abstract public class Splash extends JFrame
   
   private boolean isMac() 
   {
-    return System.getProperty("mrj.version") != null;
+    return System.getProperty("mrj.version") != null ||
+           System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0;
   }
   
   private boolean isWindows() 
diff --git a/uk/ac/sanger/artemis/components/alignment/BamFrame.java b/uk/ac/sanger/artemis/components/alignment/BamFrame.java
index 8c23edc383a6460e3f8a7680a35257c2564d7e97..f9f32ea79e6735c57c81b0310d6eff3dd7860dda 100644
--- a/uk/ac/sanger/artemis/components/alignment/BamFrame.java
+++ b/uk/ac/sanger/artemis/components/alignment/BamFrame.java
@@ -69,6 +69,7 @@ import javax.swing.JOptionPane;
     
     protected static boolean isMac()
     {
-      return System.getProperty("mrj.version") != null;
+      return System.getProperty("mrj.version") != null ||
+             System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0;
     }
   }
diff --git a/uk/ac/sanger/artemis/editor/BrowserControl.java b/uk/ac/sanger/artemis/editor/BrowserControl.java
index 9bf8f65965c57dfb4c054892f28cbe887c995d48..54ccde9a5cc469505dd6be1a408cdcc72c77c286 100644
--- a/uk/ac/sanger/artemis/editor/BrowserControl.java
+++ b/uk/ac/sanger/artemis/editor/BrowserControl.java
@@ -40,22 +40,16 @@ import java.io.IOException;
 
 public class BrowserControl
 {
-
   // The default system browser under windows.
   private static final String WIN_PATH = "rundll32";
   // The flag to display a url.
   private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
-  // The default browser under unix.
-  private static final String UNIX_PATH = "netscape";
-  // The flag to display a url.
   private static final String UNIX_FLAG = "-remote openURL";
-  
   private static final String MAC_PATH = "/usr/bin/open";
 
   /**
    * Display a file in the system browser.  If you want to display a
    * file, you must include the absolute path name.
-   *
    * @param url the file's url (the url must start with either "http://"
    *        or "file://").
    */
@@ -77,7 +71,6 @@ public class BrowserControl
       }
       else
       {
-
       	String[] browsers = 
         {
       	  "x-www-browser", "mozilla", "firefox", "opera", "konqueror", 
@@ -88,19 +81,26 @@ public class BrowserControl
         {
           ExternalApplication exApp = new ExternalApplication(
                    new String[] {"which", browsers[count]}, null, null);
-
-          //String stderr = exApp.getProcessStderr();
           String stdout = exApp.getProcessStdout();
           if(stdout != null && stdout.startsWith("/"))
             browser = browsers[count];
         }
 
         if(browser == null)
-          System.err.println("Could not find web browser");
+        {
+          try
+          {
+            java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
+          }
+          catch(Exception e)
+          {
+            System.err.println("Could not find web browser");
+          }
+        }
         else
         {
           if(browser.equals("netscape") || browser.equals("mozilla"))
-        	  handleNetscapeAndMozilla(url, browser);
+        	handleNetscapeAndMozilla(url, browser);
           else
             Runtime.getRuntime().exec(new String[] {browser, url});
         }
@@ -114,35 +114,33 @@ public class BrowserControl
     }
   }
 
-  
   private static void handleNetscapeAndMozilla(final String url, final String browser)
 			throws IOException
   {
-	  String cmd = browser + " " + UNIX_FLAG + "(" + url + ")";
-	  Process p = Runtime.getRuntime().exec(cmd);
-	  try 
-	  {
-	    // wait for exit code -- if it's 0, command worked,
-	    // otherwise we need to start the browser up.
-	    int exitCode = p.waitFor();
+	String cmd = browser + " " + UNIX_FLAG + "(" + url + ")";
+	Process p = Runtime.getRuntime().exec(cmd);
+	try 
+	{
+	  // wait for exit code -- if it's 0, command worked,
+	  // otherwise we need to start the browser up.
+	  int exitCode = p.waitFor();
    	  if (exitCode != 0) 
    	  {
-    		// Command failed, start up the browser
-		    cmd = browser + " " + url;
-		    p = Runtime.getRuntime().exec(cmd);
-	    }
-	  } 
-	  catch (InterruptedException x) 
-	  {
-	    System.err.println("Error bringing up browser, cmd='" + cmd + "'");
-	    System.err.println("Caught: " + x);
+        // Command failed, start up the browser
+		cmd = browser + " " + url;
+		p = Runtime.getRuntime().exec(cmd);
 	  }
+	} 
+	catch (InterruptedException x) 
+	{
+	  System.err.println("Error bringing up browser, cmd='" + cmd + "'");
+	  System.err.println("Caught: " + x);
+	}
   }
   
   /**
    * Try to determine whether this application is running under Windows
    * or some other platform by examing the "os.name" property.
-   *
    * @return true if this application is running under a Windows OS
    */
   public static boolean isWindowsPlatform()
@@ -156,7 +154,8 @@ public class BrowserControl
   
   private static boolean isMac() 
   {
-    return System.getProperty("mrj.version") != null;
+    return System.getProperty("mrj.version") != null ||
+           System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0;
   }
   
   /**
diff --git a/uk/ac/sanger/artemis/io/DocumentEntryAutosaveThread.java b/uk/ac/sanger/artemis/io/DocumentEntryAutosaveThread.java
index fc468b6b7c71540aae6dc79043772951f58879c1..cc0a3c7c1a80ad47fedfc3e28f1a9dc318fa32fd 100644
--- a/uk/ac/sanger/artemis/io/DocumentEntryAutosaveThread.java
+++ b/uk/ac/sanger/artemis/io/DocumentEntryAutosaveThread.java
@@ -144,7 +144,8 @@ public class DocumentEntryAutosaveThread extends Thread {
 
   private boolean isMac() 
   {
-    return System.getProperty("mrj.version") != null;
+    return System.getProperty("mrj.version") != null ||
+           System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0;
   }
   
   /**