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..200caa4a4c855c4c4574c530f95a598879d0c6bc
--- /dev/null
+++ b/examples/switch.py
@@ -0,0 +1,46 @@
+__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(use_leds=[]):
+    """
+    Start the loop.
+
+    :param `use_leds`: Which leds to light up upon switch press.
+    :type `use_leds`: list of integers [1-4]
+    """
+    print('Loop started.\nPress Ctrl+C to break out of the loop.')
+    leds = [all_leds[i - 1] for i in use_leds]
+    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()