diff --git a/src/obj/NiTriShapeData.cpp b/src/obj/NiTriShapeData.cpp
index ec200badadea617adc0aa9100b115b258fde48e5..f903b801c6511cabb2eeeb9bcd595fbf43928074 100644
--- a/src/obj/NiTriShapeData.cpp
+++ b/src/obj/NiTriShapeData.cpp
@@ -218,6 +218,10 @@ void NiTriShapeData::DoMatchDetection() {
 
 		// Find all vertices that match this one.
 		for ( unsigned short j = i + 1; j < vertices.size(); ++j ) {
+			/* this index belongs to another group already */
+			/* so its vert/norm cannot match this group! */
+			if ( is_shared[j] )
+				continue;
 			/* for automatic regeneration we just consider
 			 * identical positions, though the format would
 			 * allow distinct positions to share a normal