diff --git a/src/doc/layer.cpp b/src/doc/layer.cpp
index 8b46b77d7..ef09f7052 100644
--- a/src/doc/layer.cpp
+++ b/src/doc/layer.cpp
@@ -156,7 +156,11 @@ Cel* LayerImage::getLastCel() const
 
 void LayerImage::addCel(Cel* cel)
 {
+  ASSERT(cel);
   ASSERT(cel->data() && "The cel doesn't contain CelData");
+  ASSERT(cel->image());
+  ASSERT(sprite());
+  ASSERT(cel->image()->pixelFormat() == sprite()->pixelFormat());
 
   CelIterator it = getCelBegin();
   CelIterator end = getCelEnd();
diff --git a/src/render/render.cpp b/src/render/render.cpp
index 9b3c196b2..48787a619 100644
--- a/src/render/render.cpp
+++ b/src/render/render.cpp
@@ -134,6 +134,11 @@ static void compose_scaled_image_scale_up(
   gfx::Clip area,
   int opacity, BlendMode blend_mode, Zoom zoom)
 {
+  ASSERT(dst);
+  ASSERT(src);
+  ASSERT(DstTraits::pixel_format == dst->pixelFormat());
+  ASSERT(SrcTraits::pixel_format == src->pixelFormat());
+
   BlenderHelper<DstTraits, SrcTraits> blender(src, pal, blend_mode);
   int px_x, px_y;
 
@@ -261,6 +266,11 @@ static void compose_scaled_image_scale_down(
   gfx::Clip area,
   int opacity, BlendMode blend_mode, Zoom zoom)
 {
+  ASSERT(dst);
+  ASSERT(src);
+  ASSERT(DstTraits::pixel_format == dst->pixelFormat());
+  ASSERT(SrcTraits::pixel_format == src->pixelFormat());
+
   BlenderHelper<DstTraits, SrcTraits> blender(src, pal, blend_mode);
   int unbox_w = zoom.remove(1);
   int unbox_h = zoom.remove(1);