diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
index f568f27b77..ad2737143c 100644
--- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
@@ -1000,7 +1000,7 @@ void ModelEntityRenderer::setKey(bool didVisualGeometryRequestSucceed) {
     if (!_cullWithParent && _model && _model->isGroupCulled()) {
         builder.withMetaCullGroup();
     } else if (_cullWithParent) {
-        builder.withoutSubMetaCulled();
+        builder.withSubMetaCulled();
     }
 
     if (didVisualGeometryRequestSucceed) {
diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp
index ac4381330d..d9d6cb8da3 100644
--- a/libraries/render-utils/src/Model.cpp
+++ b/libraries/render-utils/src/Model.cpp
@@ -978,9 +978,11 @@ void Model::setCullWithParent(bool cullWithParent) {
         _cullWithParent = cullWithParent;
 
         render::Transaction transaction;
-        foreach(auto item, _modelMeshRenderItemsMap.keys()) {
-            transaction.updateItem<ModelMeshPartPayload>(item, [cullWithParent](ModelMeshPartPayload& data) {
+        auto renderItemsKey = _renderItemKeyGlobalFlags;
+        for(auto item : _modelMeshRenderItemIDs) {
+            transaction.updateItem<ModelMeshPartPayload>(item, [cullWithParent, renderItemsKey](ModelMeshPartPayload& data) {
                 data.setCullWithParent(cullWithParent);
+                data.updateKey(renderItemsKey);
             });
         }
         AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);