Index: trunk/src/org/openstreetmap/josm/gui/Notification.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/Notification.java	(revision 9220)
+++ trunk/src/org/openstreetmap/josm/gui/Notification.java	(revision 9221)
@@ -2,7 +2,9 @@
 package org.openstreetmap.josm.gui;
 
+import java.awt.Color;
 import java.awt.Component;
 
 import javax.swing.Icon;
+import javax.swing.JEditorPane;
 import javax.swing.JOptionPane;
 import javax.swing.UIManager;
@@ -102,4 +104,6 @@
         JMultilineLabel lbl = new JMultilineLabel(msg);
         lbl.setMaxWidth(DEFAULT_CONTENT_WIDTH);
+        lbl.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
+        lbl.setForeground(Color.BLACK);
         content = lbl;
         return this;
Index: trunk/src/org/openstreetmap/josm/gui/layer/AlignImageryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AlignImageryPanel.java	(revision 9220)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AlignImageryPanel.java	(revision 9221)
@@ -45,7 +45,9 @@
         nagLabel.setLabelFor(detailsList);
         nagLabel.setFont(font);
+        nagLabel.setForeground(Color.BLACK);
         detailsList.setFont(font);
         final JCheckBox doNotShowAgain = new JCheckBox(tr("Do not show this message again"));
         doNotShowAgain.setOpaque(false);
+        doNotShowAgain.setForeground(Color.BLACK);
 
         JButton closeButton = new JButton(ImageProvider.get("misc", "black_x"));
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 9220)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 9221)
@@ -228,6 +228,10 @@
                     return new JLabel();
                 if (column == 1) {
-                    JLabel l = new JLabel(ColorHelper.color2html((Color) o));
-                    l.setBackground((Color) o);
+                    Color c = (Color) o;
+                    JLabel l = new JLabel(ColorHelper.color2html(c));
+                    l.setBackground(c);
+                    // http://stackoverflow.com/a/3943023/2257172
+                    l.setForeground((c.getRed()*0.299 + c.getGreen()*0.587 + c.getBlue()*0.114) > 186 ?
+                            Color.BLACK : Color.WHITE);
                     l.setOpaque(true);
                     return l;
