diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 52ab96c5f9039064229bfcc092fa0cb54def433f..e658a89b453abc472775fe538c14bebdc3b2e488 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -4519,10 +4519,10 @@ static void HWR_SortVisSprites(void)
 	gr_vsprsortedhead.next = gr_vsprsortedhead.prev = &gr_vsprsortedhead;
 	for (i = 0; i < gr_visspritecount; i++)
 	{
-		bestdist = ZCLIP_PLANE-1;
+		best = NULL;
 		for (ds = unsorted.next; ds != &unsorted; ds = ds->next)
 		{
-			if (ds->tz > bestdist)
+			if (!best || ds->tz > bestdist)
 			{
 				bestdist = ds->tz;
 				best = ds;