diff --git a/lib/modules/Colors.pmod b/lib/modules/Colors.pmod
index 9bac87bac5dca405afcba31aeb5fa22baa2d975f..58e95a291eed46c6174f280e10a155d0a092f2f2 100644
--- a/lib/modules/Colors.pmod
+++ b/lib/modules/Colors.pmod
@@ -472,6 +472,8 @@ array rgb_to_hsv(array|int ri, int|void gi, int|void bi)
   float h, s, v;
 
   if(arrayp(ri)) return rgb_to_hsv(@ri);
+  if((ri==gi) && (gi==bi)) return ({ 0, 0, ri }); // greyscale..
+  
   r = (float)ri/255.0; g = (float)gi/255.0; b = (float)bi/255.0;
   max = MAX3(r,g,b);
   min = -(MAX3(-r,-g,-b));