diff --git a/pycardium/modules/leds.c b/pycardium/modules/leds.c
index c2096fdabffc45bd02dbfa3c8edcd1a0badb831c..2852e2733d33fe17d917ea7d584c21a31ff0159a 100644
--- a/pycardium/modules/leds.c
+++ b/pycardium/modules/leds.c
@@ -6,10 +6,13 @@
 
 static mp_obj_t mp_leds_set(mp_obj_t led_in, mp_obj_t color_in)
 {
-	mp_check_self(mp_obj_is_type(color_in, &mp_type_list));
-	mp_obj_list_t*color = MP_OBJ_TO_PTR(color_in);
 	int led = mp_obj_get_int(led_in);
 
+	if (!mp_obj_is_type(color_in, &mp_type_list)) {
+		mp_raise_TypeError("color must be a list");
+	}
+	mp_obj_list_t*color = MP_OBJ_TO_PTR(color_in);
+
 	if (color->len < 3) {
 		mp_raise_ValueError("color list must have 3 elements");
 	}