diff --git a/src/Shaders/RaytraceBase.fs b/src/Shaders/RaytraceBase.fs
index 8e62c418ba..e5e765b11d 100644
--- a/src/Shaders/RaytraceBase.fs
+++ b/src/Shaders/RaytraceBase.fs
@@ -951,7 +951,7 @@ vec4 Radiance (in SRay theRay, in vec3 theInverse)
       else
       {
         vec4 aGlColor = ComputeOpenGlColor();
-        aColor = vec4 (BackgroundColor().rgb * aGlColor.w + ComputeOpenGlColor().rgb, aGlColor.w);
+        aColor = vec4 (mix (aGlColor.rgb, BackgroundColor().rgb, aGlColor.w), aGlColor.w);
       }
 
       aResult += aWeight.xyz * aColor.xyz; aWeight.w *= aColor.w;
diff --git a/tests/bugs/vis/bug26404 b/tests/bugs/vis/bug26404
index 62f56d955c..81f43a8408 100644
--- a/tests/bugs/vis/bug26404
+++ b/tests/bugs/vis/bug26404
@@ -16,12 +16,12 @@ vdisplay b
 vfit
 vraytrace 1
 set bug_info_1 [vreadpixel 50 50 rgb name]
-if {$bug_info_1 != "GRAY8"} {
+if {$bug_info_1 != "GRAY4"} {
   puts "ERROR: OCC26404 is reproduced. Background color is invalid (case #1)."
 }
 vsetgradientbg 255 0 0 0 0 255 1
 vsetgradientbg 255 0 0 0 0 255 0
 set bug_info_2 [vreadpixel 50 50 rgb name]
-if {$bug_info_2 != "GRAY8"} {
+if {$bug_info_2 != "GRAY4"} {
   puts "ERROR: OCC26404 is reproduced. Background color is invalid (case #2)."
 }