diff --git a/Engine/source/T3D/missionMarker.cpp b/Engine/source/T3D/missionMarker.cpp index 27785d627..1bd19ae68 100644 --- a/Engine/source/T3D/missionMarker.cpp +++ b/Engine/source/T3D/missionMarker.cpp @@ -438,16 +438,16 @@ void SpawnSphere::unpackUpdate(NetConnection * con, BitStream * stream) stream->read(&mSpawnDataBlock); if (oldSDB != mSpawnDataBlock) { + delete mShapeInstance; ShapeBaseData *spawnedDatablock = dynamic_cast(Sim::findObject(mSpawnDataBlock.c_str())); - if (spawnedDatablock) + if (spawnedDatablock && spawnedDatablock->mShape) { - delete mShapeInstance; - mShapeInstance = new TSShapeInstance(spawnedDatablock->mShape); + mShapeInstance = new TSShapeInstance(spawnedDatablock->mShape); } - else + else if (mDataBlock) { - delete mShapeInstance; - mShapeInstance = new TSShapeInstance(mDataBlock->mShape); + if (mDataBlock->mShape) + mShapeInstance = new TSShapeInstance(mDataBlock->mShape); } } stream->read(&mSpawnName);