return err;
        }
 
-       if (stat_config.initial_delay < 0) {
-               pr_info(EVLIST_DISABLED_MSG);
-               return 0;
-       }
-
-       if (stat_config.initial_delay > 0) {
-               pr_info(EVLIST_DISABLED_MSG);
-               usleep(stat_config.initial_delay * USEC_PER_MSEC);
-       }
-
        /*
         * We need to enable counters only if:
         * - we don't have tracee (attaching to task or cpu)
         * - we have initial delay configured
         */
-       if (!target__none(&target) || stat_config.initial_delay) {
+       if (!target__none(&target)) {
                if (!all_counters_use_bpf)
                        evlist__enable(evsel_list);
-               if (stat_config.initial_delay > 0)
-                       pr_info(EVLIST_ENABLED_MSG);
        }
        return 0;
 }
                        return err;
        }
 
-       err = enable_counters();
-       if (err)
-               return -1;
+       if (stat_config.initial_delay) {
+               pr_info(EVLIST_DISABLED_MSG);
+       } else {
+               err = enable_counters();
+               if (err)
+                       return -1;
+       }
 
        /* Exec the command, if any */
        if (forks)
                evlist__start_workload(evsel_list);
 
+       if (stat_config.initial_delay > 0) {
+               usleep(stat_config.initial_delay * USEC_PER_MSEC);
+               err = enable_counters();
+               if (err)
+                       return -1;
+
+               pr_info(EVLIST_ENABLED_MSG);
+       }
+
        t0 = rdclock();
        clock_gettime(CLOCK_MONOTONIC, &ref_time);