diff --git a/src/cm/CollisionModel_load.cpp b/src/cm/CollisionModel_load.cpp
--- a/src/cm/CollisionModel_load.cpp
+++ b/src/cm/CollisionModel_load.cpp
@@ -1090,14 +1090,14 @@
 /*
 ================
 idCollisionModelManagerLocal::SetupTrmModelStructure
 ================
 */
 void idCollisionModelManagerLocal::SetupTrmModelStructure( void ) {
-	// create a material for the trace model polygons
-	if ( trmMaterial == NULL ) {
-		trmMaterial = declManager->FindMaterial( "_tracemodel", false );
-	}
+	// A full engine reload reconstructs the decl manager without reconstructing
+	// the collision manager. Resolve this map-local cache unconditionally so
+	// trace models cannot retain a material from the previous decl set.
+	trmMaterial = declManager->FindMaterial( "_tracemodel", false );
 	if ( !trmMaterial ) {
 		common->FatalError( "_tracemodel material not found" );
 	}
 }
