commit 94852e1703291de83f907e58d4bce1790553bbc8
Author: Willem Jan Palenstijn <wjp@usecode.org>
Date:   Sat May 23 23:05:22 2009 +0100

    SCI: re-xlate pixmap when remapping palette
    
    Conflicts:
    
    	engines/sci/gfx/operations.cpp

diff --git a/engines/sci/gfx/operations.cpp b/engines/sci/gfx/operations.cpp
index 2e778e1..fc1d471 100644
--- a/engines/sci/gfx/operations.cpp
+++ b/engines/sci/gfx/operations.cpp
@@ -196,6 +196,7 @@ static int _gfxop_install_pixmap(gfx_driver_t *driver, gfx_pixmap_t *pxm) {
 	if (!driver->mode->palette) return GFX_OK;
 	if (!pxm->palette) return GFX_OK;
 
+	bool remap = pxm->palette->mergeInto(driver->mode->palette);
 	assert(pxm->palette->getParent() == driver->mode->palette);
 
 	if (!driver->mode->palette->isDirty()) return GFX_OK;
@@ -214,6 +215,10 @@ static int _gfxop_install_pixmap(gfx_driver_t *driver, gfx_pixmap_t *pxm) {
 
 	g_system->setPalette(paletteData, 0, paletteSize);
 	driver->mode->palette->markClean();
+
+	if (remap)
+		gfx_xlate_pixmap(pxm, driver->mode, GFX_XLATE_FILTER_NONE);
+
 	return GFX_OK;
 }
 
