diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 3ea62199ffe1a407f31f7bbca504ddbc5ccf52d0..deda1a93131e35640e24ab9d138ac84485cf207b 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -282,7 +282,7 @@ static int parse_scriptname(const struct option *opt __used,
 		script++;
 	} else {
 		script = str;
-		ext = strchr(script, '.');
+		ext = strrchr(script, '.');
 		if (!ext) {
 			fprintf(stderr, "invalid script extension");
 			return -1;