diff --git a/src/spfx.c b/src/spfx.c
index bac84be..be25dc7 100644
--- a/src/spfx.c
+++ b/src/spfx.c
@@ -129,6 +129,11 @@ void spfx_add(int effect,
   SPFX* cur_spfx;
   double ttl, anim;
 
+  if((effect < 0) || (effect > spfx_neffects)) {
+    WARN("Trying to add spfx with invalid effect!");
+    return;
+  }
+
   /* Select the layer. */
   if(layer == SPFX_LAYER_FRONT) {
     /* Front layer. */