diff --git a/uk/ac/sanger/artemis/components/alignment/JamView.java b/uk/ac/sanger/artemis/components/alignment/JamView.java
index 5c9c49f69783a530294c770bec95725d82d36ea6..503f38ae3e4d8061fc57bfd9e86f44f5db91da99 100644
--- a/uk/ac/sanger/artemis/components/alignment/JamView.java
+++ b/uk/ac/sanger/artemis/components/alignment/JamView.java
@@ -356,7 +356,7 @@ public class JamView extends JPanel
     else
     {
       double x = jspView.getViewport().getViewRect().getX();
-      start = 1 + (int) (seqLength * ( (float)x / (float)getPreferredSize().getWidth()));
+      start = 1 + (int) (getMaxBasesInPanel(seqLength) * ( (float)x / (float)getPreferredSize().getWidth() ));
     }
     
     if(endBase > 0)
@@ -369,8 +369,8 @@ public class JamView extends JPanel
       end   = (int) (start + ((float)width / (float)pixPerBase));
     }
 
-    System.out.println("paintComponent "+start+".."+end+"       "+startBase+".."+endBase+
-       "  pixPerBase="+pixPerBase+"  getPreferredSize().getWidth()="+getPreferredSize().getWidth());
+    //System.out.println("paintComponent "+start+".."+end+"       "+startBase+".."+endBase+
+    //   "  pixPerBase="+pixPerBase+"  getPreferredSize().getWidth()="+getPreferredSize().getWidth());
     
     if(laststart != start ||
        lastend   != end)
@@ -407,7 +407,7 @@ public class JamView extends JPanel
   {
     String refName = (String) combo.getSelectedItem();
     int seqLength = seqLengths.get(refName);
-    return ((float)getPreferredSize().getWidth())/((float)seqLength);
+    return ((float)getPreferredSize().getWidth())/(getMaxBasesInPanel(seqLength));
   }
   
   private float getPixPerBaseByBasesInView()
@@ -419,6 +419,13 @@ public class JamView extends JPanel
     return ((float)width)/(float)(nbasesInView); 
   }
   
+  private float getMaxBasesInPanel(int seqLength)
+  {
+    if(feature_display == null)
+      return (float)(seqLength);
+    else
+      return (float)(seqLength+nbasesInView);
+  }
   
   /**
    * Draw the zoomed-in base view.
@@ -523,6 +530,7 @@ public class JamView extends JPanel
       revalidate();
     }
   }
+
   
   /**
    * Draw the query sequence
@@ -1065,7 +1073,7 @@ public class JamView extends JPanel
     String refName = (String) combo.getSelectedItem();
     int seqLength = seqLengths.get(refName);
     double x = jspView.getViewport().getViewRect().getX();
-    return (int) (seqLength * ( x / getWidth())) + 1;
+    return (int) (getMaxBasesInPanel(seqLength) * ( x / getWidth())) + 1;
   }
   
   /**
@@ -1077,7 +1085,7 @@ public class JamView extends JPanel
   {
     this.nbasesInView = nbasesInView;
 
-    System.out.println("setZoomLevel "+nbasesInView+"  "+getBaseAtStartOfView());
+    //System.out.println("setZoomLevel "+nbasesInView+"  "+getBaseAtStartOfView());
     String refName = (String) combo.getSelectedItem();
     int seqLength = seqLengths.get(refName);
     float pixPerBase = getPixPerBaseByBasesInView(); 
@@ -1098,7 +1106,7 @@ public class JamView extends JPanel
     }
     
     Dimension d = new Dimension();
-    d.setSize((seqLength*pixPerBase), 800.d);
+    d.setSize((getMaxBasesInPanel(seqLength)*pixPerBase), 800.d);
     setPreferredSize(d);
     painting = false;
     revalidate();
@@ -1117,8 +1125,8 @@ public class JamView extends JPanel
     
     float width = (float) getPreferredSize().getWidth();
     
-    p.x = Math.round(width*((float)(base-1)/(float)seqLength));
-    System.out.println("goToBasePosition "+base);
+    p.x = Math.round(width*((float)(base-1)/(getMaxBasesInPanel(seqLength))));
+    //System.out.println("goToBasePosition "+base);
     jspView.getViewport().setViewPosition(p);
   }
   
@@ -1141,7 +1149,7 @@ public class JamView extends JPanel
 
     float pixPerBase;
     if(jspView.getViewport().getViewRect().width > 0)
-      pixPerBase = getPixPerBaseByBasesInView();
+      pixPerBase = this.getPixPerBaseByWidth(); // getPixPerBaseByBasesInView();
     else
     {
       if(feature_display == null)
@@ -1166,7 +1174,9 @@ public class JamView extends JPanel
     }
     
     Dimension d = new Dimension();
-    d.setSize((seqLength*pixPerBase), 800.d);
+    d.setSize((getMaxBasesInPanel(seqLength)*pixPerBase), 800.d);
+    
+    //System.out.println("setDisplay() "+d.getWidth());
     setPreferredSize(d);
     goToBasePosition(startBase);
     
@@ -1177,8 +1187,6 @@ public class JamView extends JPanel
     }
   }
   
-
-
   /**
    * Return an Artemis entry from a file 
    * @param entryFileName
@@ -1193,7 +1201,7 @@ public class JamView extends JPanel
     final EntryInformation artemis_entry_information =
       Options.getArtemisEntryInformation();
     
-    System.out.println(entryFileName);
+    //System.out.println(entryFileName);
     final uk.ac.sanger.artemis.io.Entry new_embl_entry =
       EntryFileDialog.getEntryFromFile(null, entry_document,
                                        artemis_entry_information,
@@ -1442,7 +1450,7 @@ public class JamView extends JPanel
       this.endBase   = event.getEnd();
       
       int width = event.getEnd()-event.getStart()+1;
-      System.out.println("displayAdjustmentValueChanged() "+event.getStart()+".."+event.getEnd()+"  +width");
+      //System.out.println("displayAdjustmentValueChanged() "+event.getStart()+".."+event.getEnd()+"  +width");
 
       setZoomLevel(width);
       goToBasePosition(event.getStart());