+2010-02-11  Pedro Alves  <pedro@codesourcery.com>
+
+       * tracepoint.c (tfile_open): Remove spurious discard_cleanups.
+       Merge uploaded TSVs before merging uploaded tracepoints.
+
 2010-02-11  Pedro Alves  <pedro@codesourcery.com>
 
        * ax-gdb.c (gen_deref): Don't allow dereferencing void pointers.
 
   unpush_target (&tfile_ops);
 
   push_target (&tfile_ops);
-  discard_cleanups (old_chain);
 
   trace_filename = xstrdup (filename);
   trace_fd = scratch_chan;
 
   /* Add the file's tracepoints and variables into the current mix.  */
 
-  merge_uploaded_tracepoints (&uploaded_tps);
-
+  /* Get trace state variables first, they may be checked when parsing
+     uploaded commands.  */
   merge_uploaded_trace_state_variables (&uploaded_tsvs);
 
+  merge_uploaded_tracepoints (&uploaded_tps);
+
   /* Record the starting offset of the binary trace data.  */
   trace_frames_offset = bytes;