--- linux-2.6.13/drivers/media/video/cx88/cx88-input.c.orig	2005-08-29 02:41:01.000000000 +0300
+++ linux-2.6.13/drivers/media/video/cx88/cx88-input.c	2005-09-03 15:18:49.000000000 +0300
@@ -231,6 +231,7 @@ struct cx88_IR {
 	struct timer_list timer;
 	u32 gpio_addr;
 	u32 last_gpio;
+	u32 last_rc5;
 	u32 mask_keycode;
 	u32 mask_keydown;
 	u32 mask_keyup;
@@ -483,6 +484,9 @@ void cx88_ir_irq(struct cx88_core *core)
 		ir_dprintk("biphase decoded: %x\n", rc5);
 		if ((rc5 & 0xfffff000) != 0x3000)
 			break;
+ 		if (!ir->ir.keypressed && rc5 == ir->last_rc5)
+			break;
+		ir->last_rc5 = rc5;
 		ir_input_keydown(&ir->input, &ir->ir, rc5 & 0x3f, rc5);
 		ir->release = jiffies + msecs_to_jiffies(120);
 		break;
