if (!rule->cr.wc.wildcards) {
             struct odp_flow odp_flow;
             flow_from_match(&odp_flow.key, NULL, &ofm->match);
+            odp_flow.actions = NULL;
+            odp_flow.n_actions = 0;
             dpif_flow_del(&p->dpif, &odp_flow);
         }
         classifier_remove(&p->cls, &rule->cr);
                                 struct rule, list, &rule->list) {
                 struct odp_flow odp_flow;
                 odp_flow.key = subrule->cr.flow;
+                odp_flow.actions = NULL;
+                odp_flow.n_actions = 0;
                 if (!dpif_flow_del(&p->dpif, &odp_flow)) {
                     update_stats(rule, &odp_flow.stats);
                 }
             struct odp_flow odp_flow;
             memset(&odp_flow, 0, sizeof odp_flow);
             odp_flow.key = rule->cr.flow;
+            odp_flow.actions = NULL;
+            odp_flow.n_actions = 0;
             dpif_flow_del(&p->dpif, &odp_flow);
         }
     }