--- linux-2.6.14.3/drivers/media/video/cx88/cx88-input.c.orig	2005-12-09 18:00:14.000000000 +0200
+++ linux-2.6.14.3/drivers/media/video/cx88/cx88-input.c	2005-12-09 18:00:30.000000000 +0200
@@ -277,6 +277,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;
@@ -566,6 +567,9 @@ void cx88_ir_irq(struct cx88_core *core)
 		ir_dprintk("biphase decoded: %x\n", ircode);
 		if ((ircode & 0xfffff000) != 0x3000)
 			break;
+		if (!ir->ir.keypressed && ircode == ir->last_rc5)
+			break;
+		ir->last_rc5 = ircode;
 		ir_input_keydown(&ir->input, &ir->ir, ircode & 0x3f, ircode);
 		ir->release = jiffies + msecs_to_jiffies(120);
 		break;

