diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java
index 80bd24a526956257e30e44c600ec5be5d63f0c9e..19d8734db49ed791c2e3eb97a6382c897c8b0be0 100644
--- a/uk/ac/sanger/artemis/components/alignment/BamView.java
+++ b/uk/ac/sanger/artemis/components/alignment/BamView.java
@@ -158,7 +158,7 @@ public class BamView extends JPanel
   private HashMap<String, Integer> offsetLengths;
   private Vector<String> seqNames = new Vector<String>();
   protected List<String> bamList;
-  protected List<Integer> hideBamList = new Vector<Integer>();
+  protected List<Short> hideBamList = new Vector<Short>();
 
   private SAMRecordPredicate samRecordFlagPredicate;
   private SAMRecordMapQPredicate samRecordMapQPredicate;
@@ -605,7 +605,7 @@ public class BamView extends JPanel
   {
     // Open the input file.  Automatically detects whether input is SAM or BAM
     // and delegates to a reader implementation for the appropriate format.
-    final String bam = bamList.get(bamIndex);  
+    final String bam = bamList.get(bamIndex);
     final SAMFileReader inputSam = getSAMFileReader(bam);
     
     //final SAMFileReader inputSam = new SAMFileReader(bamFile, indexFile);
@@ -905,7 +905,7 @@ public class BamView extends JPanel
           else
             readsInView.clear();
 
-          final CountDownLatch latch = new CountDownLatch(bamList.size());
+          final CountDownLatch latch = new CountDownLatch(bamList.size()-hideBamList.size());
           //long ms = System.currentTimeMillis();
           for(short i=0; i<bamList.size(); i++)
           {
@@ -2328,9 +2328,9 @@ public class BamView extends JPanel
     cbBam.addItemListener(new ItemListener() {
       public void itemStateChanged(ItemEvent e) {
         if(cbBam.isSelected())
-          hideBamList.remove(new Integer(thisBamIndex));
+          hideBamList.remove(new Short(thisBamIndex));
         else
-          hideBamList.add(new Integer(thisBamIndex));
+          hideBamList.add(new Short(thisBamIndex));
         laststart = -1;
         repaint();
       } 
diff --git a/uk/ac/sanger/artemis/components/alignment/MappedReads.java b/uk/ac/sanger/artemis/components/alignment/MappedReads.java
index 83c71e783703b80236eff69b3baf13ee8652f62c..83b75df5414ef3fa901e4c2cb1a68dc130e85953 100644
--- a/uk/ac/sanger/artemis/components/alignment/MappedReads.java
+++ b/uk/ac/sanger/artemis/components/alignment/MappedReads.java
@@ -46,7 +46,7 @@ public class MappedReads
   private String refName;
   private Hashtable<String, SAMFileReader> samFileReaderHash;
   private List<String> bamList;
-  private List<Integer> hideBamList;
+  private List<Short> hideBamList;
   private Vector<String> seqNames;
   private HashMap<String, Integer> offsetLengths;
   private boolean concatSequences;
@@ -543,7 +543,7 @@ public class MappedReads
       int revStart = -1;
       final List<MarkerObj> fwdMarkers = new Vector<MarkerObj>();
       final List<MarkerObj> revMarkers = new Vector<MarkerObj>();
-      for (int i = 0; i < bamList.size(); i++)
+      for (short i = 0; i < bamList.size(); i++)
       {
         if(hideBamList.contains(i))
           continue;