diff -u base/libmpeg3/video/mpeg3video.c hvirtual-1.1.6/libmpeg3/video/mpeg3video.c
--- base/libmpeg3/video/mpeg3video.c	2003-05-16 12:54:20.000000000 +0200
+++ hvirtual-1.1.6/libmpeg3/video/mpeg3video.c	2003-05-19 12:33:50.000000000 +0200
@@ -275,11 +275,6 @@
 		free(video->x_table);
 		free(video->y_table);
 	}
-	if(video->total_slice_decoders)
-	{
-		for(i = 0; i < video->total_slice_decoders; i++)
-			mpeg3_delete_slice_decoder(&(video->slice_decoders[i]));
-	}
 	for(i = 0; i < video->slice_buffers_initialized; i++)
 		mpeg3_delete_slice_buffer(&(video->slice_buffers[i]));
 
@@ -533,6 +528,12 @@
 
 int mpeg3video_delete(mpeg3video_t *video)
 {
+	int i;
+	if(video->total_slice_decoders)
+	{
+		for(i = 0; i < video->total_slice_decoders; i++)
+			mpeg3_delete_slice_decoder(&(video->slice_decoders[i]));
+	}
 	if(video->decoder_initted)
 	{
 		mpeg3video_deletedecoder(video);
