diff --git a/src/dotterApp/dotter.cpp b/src/dotterApp/dotter.cpp
index c34927b2c2e9b2df60434d3a2d9aa63be5815c5c..582d917f6744559dab6428d177bd748f8fc8291a 100644
--- a/src/dotterApp/dotter.cpp
+++ b/src/dotterApp/dotter.cpp
@@ -189,6 +189,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx,
                                        const int zoomFacIn,
                                        const int qcenter,
                                        const int scenter,
+                                       const int bpoint,
+                                       const int wpoint,
                                        const gboolean greyramSwap,
                                        char *windowColor);
 
@@ -1169,6 +1171,8 @@ void dotter (const BlxBlastMode blastMode,
                        options->dotterZoom,
                        qcenter,
                        scenter,
+                       options->bpoint,
+                       options->wpoint,
                        options->swapGreyramp,
                        options->windowColor);
 
@@ -1192,6 +1196,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx,
                                        const int zoomFacIn,
                                        const int qcenter,
                                        const int scenter,
+                                       const int bpoint,
+                                       const int wpoint,
                                        const gboolean greyrampSwap,
                                        char *windowColor)
 {
@@ -1219,8 +1225,8 @@ static GtkWidget* createDotterInstance(DotterContext *dotterCtx,
       GtkWidget *greyrampContainer = gtk_frame_new(NULL); /* container for when docked */
       gtk_frame_set_shadow_type(GTK_FRAME(greyrampContainer), GTK_SHADOW_NONE);
       GtkWidget *greyrampWindow = NULL; /* container for when undocked */
-      GtkWidget *greyrampTool = createGreyrampTool(dotterWinCtx, 40, 100, greyrampSwap, &greyrampWindow);
-      GtkWidget *greyrampToolMinimised = createGreyrampToolMinimised(dotterWinCtx, 40, 100);
+      GtkWidget *greyrampTool = createGreyrampTool(dotterWinCtx, bpoint, wpoint, greyrampSwap, &greyrampWindow);
+      GtkWidget *greyrampToolMinimised = createGreyrampToolMinimised(dotterWinCtx, bpoint, wpoint);
       registerGreyrampCallback(greyrampTool, dotplot, dotplotUpdateGreymap);
       registerGreyrampCallback(greyrampToolMinimised, dotplot, dotplotUpdateGreymap);
       blxSetWidgetColor(greyrampWindow, windowColor);
@@ -1300,7 +1306,7 @@ void callDotterInternal(DotterContext *dc,
                         const gboolean breaklinesOn)
 {
   DotterWindowContext *dwc = createDotterWindowContext(dc, refSeqRange, matchSeqRange, zoomFactor, TRUE);
-  createDotterInstance(dc, dwc, NULL, NULL, NULL, FALSE, breaklinesOn, NULL, 0, 0, 0, 0, FALSE, NULL);
+  createDotterInstance(dc, dwc, NULL, NULL, NULL, FALSE, breaklinesOn, NULL, 0, 0, 0, 0, 0, 0, FALSE, NULL);
 }
 
 
diff --git a/src/dotterApp/dotter.hpp b/src/dotterApp/dotter.hpp
index 89f457867cb874d7f3e57806604643975e5813ce..3f3b2c9291c672e349425869a373bb261340a1b9 100644
--- a/src/dotterApp/dotter.hpp
+++ b/src/dotterApp/dotter.hpp
@@ -61,6 +61,8 @@ typedef struct _DotterOptions
   {
     int qoffset;              /* qoffset + 1 gives the value of the first coord on the ref seq */
     int soffset;              /* soffset + 1 gives the value of the first coord on the match seq */
+    int bpoint;               /* black point */
+    int wpoint;               /* white point */
     gboolean selfcall;        /* whether called internally, i.e. so that features/sequences will be piped into dotter rather than read from files */
     int qlen;                 /* length of the ref seq */
     int slen;                 /* length of the match seq */
diff --git a/src/dotterApp/dotterMain.cpp b/src/dotterApp/dotterMain.cpp
index 840eaf24b807eb0bc32a0f9f099f34f163c6350d..fe2dcd3d8e8e683b058a6b7095de2788c3be91d9 100644
--- a/src/dotterApp/dotterMain.cpp
+++ b/src/dotterApp/dotterMain.cpp
@@ -122,6 +122,12 @@
 \n\
   -s <int>, --vertical-offset=<int>\n\
     Vertical_sequence offset\n\
+\n\
+  -x <int>, --black-point=<int>\n\
+    Black point value\n\
+\n\
+  -y <int>, --white-point=<int>\n\
+    White point value\n\
 \n\
   --horizontal-type=p|d\n\
     Horizontal_sequence type ('p' for peptide or 'd' for DNA)\n\
@@ -172,6 +178,8 @@ static void setDefaultOptions(DotterOptions *options)
 {
   options->qoffset = 0;
   options->soffset = 0;
+  options->bpoint = 40;
+  options->wpoint = 100;
   options->selfcall = FALSE;
   options->qlen = UNSET_INT;
   options->slen = UNSET_INT;
@@ -392,6 +400,8 @@ int main(int argc, char **argv)
       {"crick-only",            no_argument,        0, 'c'},
       {"horizontal-offset",     required_argument,  0, 'q'},
       {"vertical-offset",       required_argument,  0, 's'},
+      {"black-point",           required_argument,  0, 'x'},
+      {"white-point",           required_argument,  0, 'y'},
       {"horizontal-type",       required_argument,  0, 0},
       {"vertical-type",         required_argument,  0, 0},
       {"negate-coords",         no_argument,        0, 'N'},
@@ -400,7 +410,7 @@ int main(int argc, char **argv)
       {0, 0, 0, 0}
     };
 
-  const char  *optstring="b:cDe:f:F:hHil:M:m:Np:q:Rrs:SvW:wz:";
+  const char  *optstring="b:cDe:f:F:hHil:M:m:Np:q:Rrs:SvW:wx:y:z:";
   extern int   optind;
   extern char *optarg;
   int          optionIndex; /* getopt_long stores the index into the option struct here */
@@ -480,6 +490,8 @@ int main(int argc, char **argv)
             options.winsize = (char*)g_malloc(strlen(optarg)+1);
             strcpy(options.winsize, optarg);               break;
           case 'w': options.watsonOnly = TRUE;             break;
+          case 'x': options.bpoint = atoi(optarg);        break;
+          case 'y': options.wpoint = atoi(optarg);        break;
           case 'z': options.dotterZoom = atoi(optarg);     break;
           default : g_error("Illegal option\n");
         }