diff -urN linux-2.6.20.3/drivers/leds/Kconfig linux-2.6.20.3_ap/drivers/leds/Kconfig
--- linux-2.6.20.3/drivers/leds/Kconfig	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_ap/drivers/leds/Kconfig	2007-04-03 21:07:04.000000000 +0200
@@ -106,6 +106,13 @@
 	  This allows LEDs to be controlled by IDE disk activity.
 	  If unsure, say Y.
 
+config LEDS_TRIGGER_ORINOCO
+	bool "LED Orinoco Wireless Card Trigger"
+	depends LEDS_TRIGGERS && HERMES
+	help
+	  This allows LEDs to be controlled by Orinoco wireless activity.
+	  If unsure, say N.
+
 config LEDS_TRIGGER_HEARTBEAT
 	tristate "LED Heartbeat Trigger"
 	depends on LEDS_TRIGGERS
diff -urN linux-2.6.20.3/drivers/leds/ledtrig-orinoco.c linux-2.6.20.3_ap/drivers/leds/ledtrig-orinoco.c
--- linux-2.6.20.3/drivers/leds/ledtrig-orinoco.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.20.3_ap/drivers/leds/ledtrig-orinoco.c	2007-04-03 02:14:28.000000000 +0200
@@ -0,0 +1,62 @@
+/*
+ * LED Orinoco Activity Trigger
+ *
+ * Copyright 2007 PaulTT
+ *
+ * Author: PaulTT <code@paultt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/timer.h>
+#include <linux/leds.h>
+
+static void ledtrig_orinoco_timerfunc(unsigned long data);
+
+DEFINE_LED_TRIGGER(ledtrig_orinoco);
+static DEFINE_TIMER(ledtrig_orinoco_timer, ledtrig_orinoco_timerfunc, 0, 0);
+static int orinoco_activity;
+static int orinoco_lastactivity;
+
+void ledtrig_orinoco_activity(void)
+{
+	orinoco_activity++;
+	if (!timer_pending(&ledtrig_orinoco_timer))
+		mod_timer(&ledtrig_orinoco_timer, jiffies + msecs_to_jiffies(10));
+}
+EXPORT_SYMBOL(ledtrig_orinoco_activity);
+
+static void ledtrig_orinoco_timerfunc(unsigned long data)
+{
+	if (orinoco_lastactivity != orinoco_activity) {
+		orinoco_lastactivity = orinoco_activity;
+		led_trigger_event(ledtrig_orinoco, LED_FULL);
+	    	mod_timer(&ledtrig_orinoco_timer, jiffies + msecs_to_jiffies(10));
+	} else {
+		led_trigger_event(ledtrig_orinoco, LED_OFF);
+	}
+}
+
+static int __init ledtrig_orinoco_init(void)
+{
+	led_trigger_register_simple("orinoco", &ledtrig_orinoco);
+	return 0;
+}
+
+static void __exit ledtrig_orinoco_exit(void)
+{
+	led_trigger_unregister_simple(ledtrig_orinoco);
+}
+
+module_init(ledtrig_orinoco_init);
+module_exit(ledtrig_orinoco_exit);
+
+MODULE_AUTHOR("PaulTT <code@paultt.org>");
+MODULE_DESCRIPTION("LED Orinoco Wireless Card Activity Trigger");
+MODULE_LICENSE("GPL");
diff -urN linux-2.6.20.3/drivers/leds/Makefile linux-2.6.20.3_ap/drivers/leds/Makefile
--- linux-2.6.20.3/drivers/leds/Makefile	2007-03-13 19:27:08.000000000 +0100
+++ linux-2.6.20.3_ap/drivers/leds/Makefile	2007-04-03 21:07:20.000000000 +0200
@@ -18,4 +18,5 @@
 # LED Triggers
 obj-$(CONFIG_LEDS_TRIGGER_TIMER)	+= ledtrig-timer.o
 obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK)	+= ledtrig-ide-disk.o
+obj-$(CONFIG_LEDS_TRIGGER_ORINOCO)	+= ledtrig-orinoco.o
 obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)	+= ledtrig-heartbeat.o
