diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/Color.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/Color.java
index 880f8c2..9e3b18e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/Color.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/graphics/Color.java
@@ -58,11 +58,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -83,11 +79,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -106,11 +98,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -134,11 +122,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -159,10 +143,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -183,10 +163,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  *
@@ -205,10 +181,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param device the device on which to allocate the color
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
@@ -231,10 +203,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
  *
@@ -255,10 +223,6 @@
  * Constructs a new instance of this class given a device, an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -283,10 +247,6 @@
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  * @param alpha the alpha value of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Color.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Color.java
index 183fef6..e50d846 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Color.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Color.java
@@ -60,11 +60,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -85,11 +81,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -108,11 +100,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -136,11 +124,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -161,10 +145,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -185,10 +165,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  *
@@ -207,10 +183,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param device the device on which to allocate the color
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
@@ -233,10 +205,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
  *
@@ -257,10 +225,6 @@
  * Constructs a new instance of this class given a device, an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -285,10 +249,6 @@
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  * @param alpha the alpha value of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Color.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Color.java
index 4634914..ac82e13 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Color.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Color.java
@@ -66,11 +66,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -91,11 +87,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green and blue values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -114,11 +106,7 @@
 /**
  * Constructs a new instance of this class given a device and the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param device the device on which to allocate the color
  * @param red the amount of red in the color
@@ -142,11 +130,7 @@
 /**
  * Constructs a new instance of this class given the
  * desired red, green, blue &amp; alpha values expressed as ints in the range
- * 0 to 255 (where 0 is black and 255 is full brightness). On limited
- * color devices, the color instance created by this call may not have
- * the same RGB values as the ones specified by the arguments. The
- * RGB values on the returned instance will be the color values of
- * the operating system color.
+ * 0 to 255 (where 0 is black and 255 is full brightness).
  *
  * @param red the amount of red in the color
  * @param green the amount of green in the color
@@ -167,10 +151,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -191,10 +171,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  *
@@ -213,10 +189,6 @@
 /**
  * Constructs a new instance of this class given a device and an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param device the device on which to allocate the color
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
@@ -239,10 +211,6 @@
 /**
  * Constructs a new instance of this class given an
  * <code>RGBA</code> describing the desired red, green, blue &amp; alpha values.
- * On limited color devices, the color instance created by this call
- * may not have the same RGBA values as the ones specified by the
- * argument. The RGBA values on the returned instance will be the color
- * values of the operating system color + alpha.
  *
  * @param rgba the RGBA values of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
  *
@@ -263,10 +231,6 @@
  * Constructs a new instance of this class given a device, an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param device the device on which to allocate the color
  * @param rgb the RGB values of the desired color
@@ -291,10 +255,6 @@
  * Constructs a new instance of this class given an
  * <code>RGB</code> describing the desired red, green and blue values,
  * alpha specifying the level of transparency.
- * On limited color devices, the color instance created by this call
- * may not have the same RGB values as the ones specified by the
- * argument. The RGB values on the returned instance will be the color
- * values of the operating system color.
  *
  * @param rgb the RGB values of the desired color
  * @param alpha the alpha value of the desired color. Currently, SWT only honors extreme values for alpha i.e. 0 (transparent) or 255 (opaque).
