diff --git a/CHANGES b/CHANGES
index 17c2187e1f1442b349a8745dd6b586167e5fd8a3..5255ed1652781969f17806c5811390918ff99806 100644
--- a/CHANGES
+++ b/CHANGES
@@ -39,6 +39,10 @@ CHANGES IN FLTK 1.1.0b7
 	- fl_draw() reset the text color under WIN32, causing
 	  bitmaps to draw incorrectly.
 	- Fl::get_font_sizes() is now implemented under WIN32.
+	- Fl_Text_Display now uses the same default colors for
+	  selection and text as Fl_Input_ and friends.
+	- Changed the default line scrolling in Fl_Text_Display
+	  to 3 lines for the mouse wheel and scrollbar arrows.
 
 
 CHANGES IN FLTK 1.1.0b6
diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx
index 04e280d2e70319f3cecd4ced69575ea57519ad0a..c3b5e39e2f65eefe78d8efeab2b6ff1abd5ef5d2 100644
--- a/src/Fl_Text_Display.cxx
+++ b/src/Fl_Text_Display.cxx
@@ -1,5 +1,5 @@
 //
-// "$Id: Fl_Text_Display.cxx,v 1.12.2.4 2001/12/03 18:29:49 easysw Exp $"
+// "$Id: Fl_Text_Display.cxx,v 1.12.2.5 2001/12/03 20:14:30 easysw Exp $"
 //
 // Copyright Mark Edel.  Permission to distribute under the LGPL for
 // the FLTK library granted by Mark Edel.
@@ -71,6 +71,7 @@ Fl_Text_Display::Fl_Text_Display(int X, int Y, int W, int H,  const char* l)
   dragPos = dragType = dragging = 0;
   display_insert_position_hint = 0;
 
+  color(FL_WHITE, FL_SELECTION_COLOR);
   box(FL_DOWN_FRAME);
   textsize(FL_NORMAL_SIZE);
   textcolor(FL_BLACK);
@@ -1059,17 +1060,15 @@ void Fl_Text_Display::draw_string( int style, int X, int Y, int toX,
     styleRec = &mStyleTable[ ( style & STYLE_LOOKUP_MASK ) - 'A' ];
     font = styleRec->font;
     size = styleRec->size;
-    foreground = styleRec->color;
-    background = style & PRIMARY_MASK ? FL_SELECTION_COLOR :
-                 style & HIGHLIGHT_MASK ? fl_contrast(textcolor(),color()) : color();
-    if ( foreground == background )   /* B&W kludge */
-      foreground = textcolor();
-  } else if ( style & HIGHLIGHT_MASK ) {
-    foreground = textcolor();
-    background = fl_contrast(textcolor(),color());
-  } else if ( style & PRIMARY_MASK ) {
-    foreground = textcolor();
-    background = FL_SELECTION_COLOR;
+
+    if ( style & (HIGHLIGHT_MASK | PRIMARY_MASK) ) {
+      background = selection_color();
+    } else background = color();
+
+    foreground = fl_contrast(styleRec->color, background);
+  } else if ( style & (HIGHLIGHT_MASK | PRIMARY_MASK) ) {
+    background = selection_color();
+    foreground = fl_contrast(textcolor(), background);
   } else {
     foreground = textcolor();
     background = color();
@@ -1597,7 +1596,7 @@ void Fl_Text_Display::update_v_scrollbar() {
      bar maximum value is chosen to generally represent the size of the whole
      buffer, with minor adjustments to keep the scroll bar widget happy */
   mVScrollBar->value(mTopLineNum, mNVisibleLines, 1, mNBufferLines+2);
-  mVScrollBar->linesize(1);
+  mVScrollBar->linesize(3);
 }
 
 /*
@@ -1956,5 +1955,5 @@ int Fl_Text_Display::handle(int event) {
 
 
 //
-// End of "$Id: Fl_Text_Display.cxx,v 1.12.2.4 2001/12/03 18:29:49 easysw Exp $".
+// End of "$Id: Fl_Text_Display.cxx,v 1.12.2.5 2001/12/03 20:14:30 easysw Exp $".
 //