diff --git a/etc/versions b/etc/versions
index 476c45ccbfd96078986b9c3dfeb348b42c5e6215..e9e6db733650269b69961ec002acba9a3dc000bb 100644
--- a/etc/versions
+++ b/etc/versions
@@ -1,4 +1,4 @@
 Artemis Release 16.0.2
 ACT Release 13.0.2
 DNAPlotter Release 1.11
-BamView 1.2.10
\ No newline at end of file
+BamView 1.2.11
\ No newline at end of file
diff --git a/uk/ac/sanger/artemis/components/alignment/AbstractGraphPanel.java b/uk/ac/sanger/artemis/components/alignment/AbstractGraphPanel.java
index 075eb56df9ab770c015688568d93a9f06bafbc96..78a02e0f36eabf66a566ca9f6cc91bcdcfa13098 100644
--- a/uk/ac/sanger/artemis/components/alignment/AbstractGraphPanel.java
+++ b/uk/ac/sanger/artemis/components/alignment/AbstractGraphPanel.java
@@ -149,9 +149,18 @@ public class AbstractGraphPanel extends JPanel
    * @param g2
    */
   protected void drawMax(Graphics2D g2)
+  {
+    drawMax(g2, (float)max/(float)windowSize);
+  }
+  
+  /**
+   * Draw maximum average value.
+   * @param g2
+   */
+  protected void drawMax(Graphics2D g2, float max)
   {
     DecimalFormat df = new DecimalFormat("0.#");
-    String maxStr = df.format((float)max/(float)windowSize);
+    String maxStr = df.format(max);
 
     FontMetrics fm = getFontMetrics(getFont());
     g2.setColor(Color.black);
diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java
index 8dcac2241bfff1a2dc22d206de234e7a296ef297..04bbb11257b4384f6382995b4029a5823205a61b 100644
--- a/uk/ac/sanger/artemis/components/alignment/BamView.java
+++ b/uk/ac/sanger/artemis/components/alignment/BamView.java
@@ -1946,7 +1946,7 @@ public class BamView extends JPanel
     coverageView.drawSelectionRange(g2, pixPerBase, start, end, getHeight(), Color.PINK);
     coverageView.draw(g2, getWidth(), hgt, hideBamList);
     if(!coverageView.isPlotHeatMap())
-      coverageView.drawMax(g2);  
+      coverageView.drawMax(g2, coverageView.getMaxCoverage());  
   }
   
   /**
diff --git a/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java b/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
index 64dbaa55c31135c22c92026a2c9c02651bd3f1af..2d01720aecf3e6ad58cf335ca0acd6d1eba5323b 100644
--- a/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
+++ b/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
@@ -47,6 +47,7 @@ import javax.swing.JLabel;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JSeparator;
 import javax.swing.JTextField;
 
 import uk.ac.sanger.artemis.components.Plot;
@@ -71,11 +72,14 @@ import net.sf.samtools.SAMRecord;
     private List<String> selected = new Vector<String>();
     private boolean showGrid = false;
     private boolean logScale = false;
+    private int maxCoverage = Integer.MAX_VALUE;
+    private JCheckBox fixHgt = new JCheckBox("Fix the graph height to cut-off", false);
 
     protected CoveragePanel(final BamView bamView)
     {
       this();
       this.bamView = bamView;
+      setMaxBases = false;
       createMenus(popup);
       addMouseListener(new PopupListener());
     }
@@ -129,7 +133,18 @@ import net.sf.samtools.SAMRecord;
       if(!plotHeatMap)
         drawSelectionRange(g2, pixPerBase, start, end, getHeight(), Color.PINK);
       drawPlot(g2);
-      drawMax(g2);
+      drawMax(g2, getMaxCoverage());
+    }
+    
+    protected float getMaxCoverage()
+    {
+      return (useMaxCutOff() ? maxCoverage: (float)max/(float)windowSize);
+    }
+    
+    private boolean useMaxCutOff()
+    {
+      return (maxCoverage < Integer.MAX_VALUE && maxCoverage < (float)max/(float)windowSize) ||
+             (maxCoverage < Integer.MAX_VALUE && fixHgt.isSelected());
     }
     
     protected void init(BamView bamView, float pixPerBase, int start, int end)
@@ -187,7 +202,7 @@ import net.sf.samtools.SAMRecord;
             max = thisPlot[i][0];
         }
       }
-      
+
       draw(g2, getWidth(), getHeight(), null);
     }
     
@@ -310,7 +325,12 @@ import net.sf.samtools.SAMRecord;
     {
       g2.setColor(line.getLineColour());
       int hgt2 = hgt/2;
-      float maxVal = getValue(max, logScale);
+      float maxVal;
+
+      if(useMaxCutOff())
+        maxVal = getValue((maxCoverage*windowSize), logScale);
+      else
+        maxVal = getValue(max, logScale);
       
       if(line.getPlotType() == LineAttributes.PLOT_TYPES[0])
       {
@@ -538,25 +558,45 @@ import net.sf.samtools.SAMRecord;
       final GridBagConstraints c = new GridBagConstraints();
 
       final JTextField newBaseMax = new JTextField(Integer.toString(bamView.getMaxBases()), 10);
-      c.gridy = 0;
+      c.gridy+=1;
+      c.gridwidth = 1;
       if(setMaxBases)
       {
         final JLabel labMax1 = new JLabel("Zoom level before switching");
         final JLabel labMax2 = new JLabel("to coverage view (in bases):");
         c.anchor = GridBagConstraints.WEST;
+        c.gridy+=1;
         opts.add(labMax1, c);
-        c.gridy = c.gridy+1;
+        c.gridy+=1;
         opts.add(labMax2, c);
         opts.add(newBaseMax, c);
+        addSeparator(c, opts);
       }
       
+      // cut-off
+      final JTextField maxCutoff = new JTextField(
+          (maxCoverage < Integer.MAX_VALUE ? Integer.toString(maxCoverage) : ""), 10);
+      c.gridy+=1;
+      c.anchor = GridBagConstraints.WEST;
+      opts.add(new JLabel("Coverage cut-off:"), c);
+      c.anchor = GridBagConstraints.EAST;
+      opts.add(maxCutoff, c);
+      
+      c.gridy+=1;
+      c.gridwidth = GridBagConstraints.REMAINDER;
+      c.anchor = GridBagConstraints.WEST;
+      opts.add(fixHgt, c);
+      
+      addSeparator(c, opts);
+      
+      // window size
       final JTextField newWinSize = new JTextField(Integer.toString(userWinSize), 10);
       final JLabel lab = new JLabel("Window size:");
       lab.setEnabled(!autoWinSize);
       newWinSize.setEnabled(!autoWinSize);
       
-      c.gridy = c.gridy+1;
-      c.anchor = GridBagConstraints.EAST;
+      c.gridy+=1;
+      c.anchor = GridBagConstraints.WEST;
       opts.add(lab, c);
       opts.add(newWinSize, c);
 
@@ -570,22 +610,24 @@ import net.sf.samtools.SAMRecord;
         }
       });
       c.anchor = GridBagConstraints.WEST;
-      c.gridy = c.gridy+1;
+      c.gridy+=1;
       c.gridwidth = GridBagConstraints.REMAINDER;
       opts.add(autoSet, c);
 
+      addSeparator(c, opts);
+      
       final JCheckBox showCombined = new JCheckBox("Show combined plot", includeCombined);
       if(bamView.bamList.size() == 1)
         showCombined.setEnabled(false);
-      c.gridy = c.gridy+1;
+      c.gridy+=1;
       opts.add(showCombined, c);
       
       final JCheckBox byStrand = new JCheckBox("Plot by strand", plotByStrand);
-      c.gridy = c.gridy+1;
+      c.gridy+=1;
       opts.add(byStrand, c);
 
       final JCheckBox logMenu = new JCheckBox("Log scale", logScale);
-      c.gridy = c.gridy+1;
+      c.gridy+=1;
       opts.add(logMenu, c);
 
       String window_options[] = { "OK", "Cancel" };
@@ -601,10 +643,14 @@ import net.sf.samtools.SAMRecord;
       includeCombined = showCombined.isSelected();
       plotByStrand = byStrand.isSelected();
       logScale = logMenu.isSelected();
-      
+
       try
       {
         userWinSize = Integer.parseInt(newWinSize.getText().trim());
+        if(maxCutoff.getText().length() > 0)
+          maxCoverage = Integer.parseInt(maxCutoff.getText().trim());
+        else
+          maxCoverage = Integer.MAX_VALUE;
         if(setMaxBases)
           bamView.setMaxBases(Integer.parseInt(newBaseMax.getText().trim()));
       }
@@ -614,6 +660,22 @@ import net.sf.samtools.SAMRecord;
       }
     }
     
+    /**
+     * Add a separator 
+     * @param c
+     * @param opts
+     */
+    private void addSeparator(GridBagConstraints c, final JPanel opts)
+    {
+      c.gridy+=1;
+      c.gridwidth = GridBagConstraints.REMAINDER;
+      final JSeparator sep = new JSeparator();
+      c.fill = GridBagConstraints.HORIZONTAL;
+      opts.add(sep, c);
+      c.gridwidth = 1;
+      c.fill = GridBagConstraints.NONE;
+    }
+    
     /**
      * Click on heatmap
      * @param y