The only thing I see you are missing is the check for is_default. If you have any other traces running on the instance you may be picking up that one. Try this:
DECLARE @path NVARCHAR(260);
SELECT @path = REVERSE(SUBSTRING(REVERSE([path]), CHARINDEX('\', REVERSE([path])), 260)) + N'log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT *
FROM sys.fn_trace_gettable(@path, DEFAULT) t
LEFT JOIN sys.trace_events te ON t.EventClass = te.trace_event_id
WHERE t.EventClass = 104
ORDER BY StartTime DESC;
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato