diff --git a/examples/ledangle.py b/examples/ledangle.py
index 8864757aed4f1353ecf9476753334432aaa67889..8c8d9e99d957030aed0d46498b922f7cf2505c3e 100644
--- a/examples/ledangle.py
+++ b/examples/ledangle.py
@@ -2,9 +2,9 @@ import pyb
 
 def led_angle(seconds_to_run_for):
     # make LED objects
-    l1 = pyb.Led(1)
-    l2 = pyb.Led(2)
-    accel = pyb.Accel() 
+    l1 = pyb.LED(1)
+    l2 = pyb.LED(2)
+    accel = pyb.Accel()
 
     for i in range(20 * seconds_to_run_for):
         # get x-axis
diff --git a/examples/switch.py b/examples/switch.py
new file mode 100644
index 0000000000000000000000000000000000000000..23c4b5e2b02b763db8c52ccbc4c2bd5c361f84ce
--- /dev/null
+++ b/examples/switch.py
@@ -0,0 +1,45 @@
+__doc__ = """
+switch.py
+=========
+
+Light up some leds when the USR switch on the pyboard is pressed.
+
+Example Usage::
+
+    Micro Python v1.0.1 on 2014-05-12; PYBv1.0 with STM32F405RG
+    Type "help()" for more information.
+    >>> import switch
+    >>> switch.run_loop([2, 3])
+    Loop started.
+    Press Ctrl+C to break out of the loop.
+
+"""
+
+import pyb
+
+switch = pyb.Switch()
+red_led = pyb.LED(1)
+green_led = pyb.LED(2)
+orange_led = pyb.LED(3)
+blue_led = pyb.LED(4)
+all_leds = (red_led, green_led, orange_led, blue_led)
+
+def run_loop(leds=all_leds):
+    """
+    Start the loop.
+
+    :param `use_leds`: Which LEDs to light up upon switch press.
+    :type `use_leds`: sequence of LED objects
+    """
+    print('Loop started.\nPress Ctrl+C to break out of the loop.')
+    while 1:
+        try:
+            if switch():
+                [led.on() for led in leds]
+            else:
+                [led.off() for led in leds]
+        except OSError: # VCPInterrupt # Ctrl+C in interpreter mode.
+            break
+
+if __name__ == '__main__':
+    run_loop()