diff --git a/examples/ws2812bdemo/ws2812bdemo.c b/examples/ws2812bdemo/ws2812bdemo.c
index c4a826218a452ba3a7f925feaec988c690f11dff..577cd3b332e46a670eb02211c264a84d690a5f07 100644
--- a/examples/ws2812bdemo/ws2812bdemo.c
+++ b/examples/ws2812bdemo/ws2812bdemo.c
@@ -25,8 +25,8 @@ uint32_t WS2812BLEDCallback( int ledno )
 	uint8_t index = (phases[ledno])>>8;
 	uint8_t rsbase = sintable[index];
 	uint8_t rs = rsbase>>3;
-	uint32_t fire = (huetable[(rs+190)&0xff]<<16) | (huetable[(rs+30)&0xff]) | (huetable[(rs+0)]<<8);
-	uint32_t ice  = 0xff0000 | ((rsbase)<<8) | ((rsbase));
+	uint32_t fire = (huetable[(rs+190)&0xff]<<16) | (huetable[(rs+30)&0xff]) | ((huetable[(rs+0)]>>1)<<8);
+	uint32_t ice  = 0x7f0000 | ((rsbase>>1)<<8) | ((rsbase>>1));
 
 	// Because this chip doesn't natively support multiplies, we are going to avoid tweening of 1..254.
 	return TweenHexColors( fire, ice, ((tween + ledno)>0)?255:0 ); // Where "tween" is a value from 0 ... 255