diff --git a/batch.go b/batch.go
index 87b52639346ee06bc0471cbecbaa2b2a62c9f12a..97e1059d6f23ed1f04bd0a899af48026d20679ba 100644
--- a/batch.go
+++ b/batch.go
@@ -73,6 +73,9 @@ func (b *Batch) MakeTriangles(t Triangles) TargetTriangles {
 
 // MakePicture returns a specialized copy of the provided Picture that draws onto this Batch.
 func (b *Batch) MakePicture(p Picture) TargetPicture {
+	if p.Original() != b.cont.Picture.Original() {
+		panic(fmt.Errorf("(%T).MakePicture: Picture is not a slice of Batch's Picture", b))
+	}
 	bp := &batchPicture{
 		Picture: p,
 		dst:     b,
@@ -134,7 +137,7 @@ func (bp *batchPicture) Original() Picture {
 func (bp *batchPicture) Draw(t TargetTriangles) {
 	bt := t.(*batchTriangles)
 	if bp.dst != bt.dst {
-		panic(fmt.Errorf("%T.Draw: TargetTriangles generated by different Batch", bp))
+		panic(fmt.Errorf("(%T).Draw: TargetTriangles generated by different Batch", bp))
 	}
 	bt.draw(bp)
 }
diff --git a/data.go b/data.go
index 3c3fc5f5203fc03d361390317c2d7aac075b0ae5..774d6bc1cd9194d28e4d672282be44a8742c6a03 100644
--- a/data.go
+++ b/data.go
@@ -89,7 +89,7 @@ func (td *TrianglesData) updateData(t Triangles) {
 // TrianglesPosition, TrianglesColor and TrianglesTexture are supported.
 func (td *TrianglesData) Update(t Triangles) {
 	if td.Len() != t.Len() {
-		panic(fmt.Errorf("%T.Update: invalid triangles length", td))
+		panic(fmt.Errorf("(%T).Update: invalid triangles length", td))
 	}
 	td.updateData(t)
 }
diff --git a/pixelgl/canvas.go b/pixelgl/canvas.go
index 11f37f5b489202402f582f5836f35f03d901c399..94bd34dcfd8b66ed576a2da160108272ed9b35f9 100644
--- a/pixelgl/canvas.go
+++ b/pixelgl/canvas.go
@@ -402,7 +402,7 @@ func (cp *canvasPicture) Color(at pixel.Vec) pixel.NRGBA {
 func (cp *canvasPicture) Draw(t pixel.TargetTriangles) {
 	ct := t.(*canvasTriangles)
 	if cp.dst != ct.dst {
-		panic(fmt.Errorf("%T.Draw: TargetTriangles generated by different Canvas", cp))
+		panic(fmt.Errorf("(%T).Draw: TargetTriangles generated by different Canvas", cp))
 	}
 	ct.draw(cp.tex, cp.borders, cp.bounds)
 }
@@ -438,7 +438,7 @@ func (ccp *canvasCanvasPicture) Color(at pixel.Vec) pixel.NRGBA {
 func (ccp *canvasCanvasPicture) Draw(t pixel.TargetTriangles) {
 	ct := t.(*canvasTriangles)
 	if ccp.dst != ct.dst {
-		panic(fmt.Errorf("%T.Draw: TargetTriangles generated by different Canvas", ccp))
+		panic(fmt.Errorf("(%T).Draw: TargetTriangles generated by different Canvas", ccp))
 	}
 	ct.draw(ccp.src.orig.f.Texture(), ccp.src.orig.borders, ccp.bounds)
 }
diff --git a/pixelgl/gltriangles.go b/pixelgl/gltriangles.go
index de3c1115b89e1976eca0b0f63737e795802d5bc8..2e4b8ae52eb06b978a8f0fd9e3902d9483bcf34f 100644
--- a/pixelgl/gltriangles.go
+++ b/pixelgl/gltriangles.go
@@ -155,7 +155,7 @@ func (gt *GLTriangles) submitData() {
 // The two Triangles (gt and t) must be of the same len.
 func (gt *GLTriangles) Update(t pixel.Triangles) {
 	if gt.Len() != t.Len() {
-		panic(fmt.Errorf("%T.Update: invalid triangles len", gt))
+		panic(fmt.Errorf("(%T).Update: invalid triangles len", gt))
 	}
 	gt.updateData(t)
 	gt.submitData()