diff --git a/flowspec/forms.py b/flowspec/forms.py
index 1353c04a44ba336eaacf605e13356d00919a0e87..5d940551b1c845108ca738dad6d590435c2eb34c 100644
--- a/flowspec/forms.py
+++ b/flowspec/forms.py
@@ -165,6 +165,9 @@ class RouteForm(forms.ModelForm):
                 existing_routes = existing_routes.filter(pk__in=route_pk_list)
             else:
                 existing_routes = existing_routes.filter(protocol=None)
+            if "icmp" in [str(i) for i in protocols] and (destinationports or sourceports or port):
+                raise forms.ValidationError(_('It is not allowed to specify ICMP protocol and source/destination ports at the same time.'))
+
         else:
             existing_routes = existing_routes.filter(protocol=None)
         if sourceports: