diff --git a/pxr/usdImaging/usdImaging/primAdapter.cpp b/pxr/usdImaging/usdImaging/primAdapter.cpp index 6ac3dacad10..5c58a4457a8 100644 --- a/pxr/usdImaging/usdImaging/primAdapter.cpp +++ b/pxr/usdImaging/usdImaging/primAdapter.cpp @@ -768,12 +768,16 @@ UsdImagingPrimAdapter::_MergePrimvar( bool indexed) const { HdPrimvarDescriptor primvar(name, interp, role, indexed); - HdPrimvarDescriptorVector::iterator it = - std::find(vec->begin(), vec->end(), primvar); - if (it == vec->end()) - vec->push_back(primvar); - else - *it = primvar; + + for (HdPrimvarDescriptorVector::iterator it = vec->begin(); + it != vec->end(); ++it) { + if (it->name == name) { + *it = primvar; + return; + } + } + + vec->push_back(primvar); } void