diff --git a/applications/reconstruct/src/ilw/ilw.cu b/applications/reconstruct/src/ilw/ilw.cu
index b33a3e7feba861fa5923e5ddb245812ebe330c70..e9d2049f8b97e63022046d446ea19ffc668bcbd3 100644
--- a/applications/reconstruct/src/ilw/ilw.cu
+++ b/applications/reconstruct/src/ilw/ilw.cu
@@ -92,9 +92,13 @@ __global__ void correspondence_energy_vector_kernel(
 
             // Mix ratio of colour and distance costs
             const float ccost = 1.0f - ftl::cuda::colourWeighting(colour1, colour2, params.colour_smooth);
-            if ((params.flags & ftl::cuda::kILWFlag_SkipBadColour) && ccost == 1.0f) continue;
-            cost = params.cost_ratio * (ccost) + (1.0f - params.cost_ratio) * cost;
-            //cost /= 2.0f;
+			if ((params.flags & ftl::cuda::kILWFlag_SkipBadColour) && ccost == 1.0f) continue;
+			
+			// Cost eq 1: summed contributions
+			//cost = params.cost_ratio * (ccost) + (1.0f - params.cost_ratio) * cost;
+			
+			// Cost eq 2: Multiplied
+			cost = ccost * cost * cost * cost;
 
             ++count;
             avgcost += (params.flags & ftl::cuda::kILWFlag_ColourConfidenceOnly) ? ccost : cost;