diff --git a/src/raster/sprite.cpp b/src/raster/sprite.cpp
index 8eefc55cf..ec7177d0a 100644
--- a/src/raster/sprite.cpp
+++ b/src/raster/sprite.cpp
@@ -902,10 +902,14 @@ void SpriteImpl::resetPalettes()
 {
   PalettesList::iterator end = m_palettes.end();
   PalettesList::iterator it = m_palettes.begin();
-  for (; it != end; ++it)
-    delete *it;			// palette
 
-  m_palettes.clear();
+  if (it != end) {
+    ++it;			// Leave the first palette only.
+    while (it != end) {
+      delete *it;		// palette
+      it = m_palettes.erase(it);
+    }
+  }
 }
 
 void SpriteImpl::deletePalette(Palette* pal)