In method MarbleModelPrivate::assignFillColors(const QString &filePath) :
If the inner loop, which is iterating over the GeoSceneGeodata set in a layer, finds valid GeoSceneGeodata in the layer, the variable data becomes nonnull. If the data is nonnull, it causes the outer loop to exit even when the source file of GeoSceneData and path of parsed file don't match ( the condition data->sourceFile() == filePath in inner loop ). This results in applying wrong GeoSceneGeodata to a GeoDataDocument.