/* We found a control with the given ID, so just get
                           the next valid one in the list. */
                        list_for_each_entry_continue(ref, &hdl->ctrl_refs, node) {
-                               is_compound =
+                               is_compound = ref->ctrl->is_array ||
                                        ref->ctrl->type >= V4L2_CTRL_COMPOUND_TYPES;
                                if (id < ref->ctrl->id &&
                                    (is_compound & mask) == match)
                           is one, otherwise the first 'if' above would have
                           been true. */
                        list_for_each_entry(ref, &hdl->ctrl_refs, node) {
-                               is_compound =
+                               is_compound = ref->ctrl->is_array ||
                                        ref->ctrl->type >= V4L2_CTRL_COMPOUND_TYPES;
                                if (id < ref->ctrl->id &&
                                    (is_compound & mask) == match)