diff --git a/ui/src/assets/common.scss b/ui/src/assets/common.scss
index 065a306..fb4a2fa 100644
--- a/ui/src/assets/common.scss
+++ b/ui/src/assets/common.scss
@@ -761,6 +761,10 @@
   .empty-result {
     padding: 10px;
   }
+
+  td.menu {
+    text-align: left;
+  }
 }
 
 .name-completion {
diff --git a/ui/src/common/empty_state.ts b/ui/src/common/empty_state.ts
index 1e6e303..197cbad 100644
--- a/ui/src/common/empty_state.ts
+++ b/ui/src/common/empty_state.ts
@@ -62,7 +62,7 @@
     pivotTableRedux: {
       selectionArea: null,
       queryResult: null,
-      editMode: true,
+      editMode: false,
       selectedPivotsMap: keyedMap(
           columnKey,
           {kind: 'regular', table: 'slice', column: 'category'},
diff --git a/ui/src/controller/track_decider.ts b/ui/src/controller/track_decider.ts
index baad0de..eddf018 100644
--- a/ui/src/controller/track_decider.ts
+++ b/ui/src/controller/track_decider.ts
@@ -1285,12 +1285,11 @@
     ) using (upid)
     left join (
       select
-        process.upid as upid,
-        count(*) as perfSampleCount
-      from process
-        join thread on process.upid = thread.upid
-        join perf_sample on thread.utid = perf_sample.utid
-      group by process.upid
+        thread.upid as upid,
+        sum(cnt) as perfSampleCount
+      from (select utid, count(*) as cnt from perf_sample group by utid) s
+        join thread on thread.utid = s.utid
+      group by thread.upid
     ) using (upid)
     left join (
       select
@@ -1313,10 +1312,10 @@
       perfSampleCount desc,
       total_dur desc,
       sliceCount desc,
-      processName,
-      the_tracks.upid,
-      threadName,
-      the_tracks.utid;
+      processName asc nulls last,
+      the_tracks.upid asc nulls last,
+      threadName asc nulls last,
+      the_tracks.utid asc nulls last;
   `);
 
     const it = result.iter({
diff --git a/ui/src/frontend/pivot_table_redux.ts b/ui/src/frontend/pivot_table_redux.ts
index 05a1595..c3d3393 100644
--- a/ui/src/frontend/pivot_table_redux.ts
+++ b/ui/src/frontend/pivot_table_redux.ts
@@ -186,14 +186,6 @@
   renderResultsView(attrs: PivotTableReduxAttrs) {
     return m(
         '.pivot-table-redux',
-        m('button.mode-button',
-          {
-            onclick: () => {
-              globals.dispatch(Actions.setPivotTableEditMode({editMode: true}));
-              globals.rafScheduler.scheduleFullRedraw();
-            },
-          },
-          'Edit'),
         this.renderResultsTable(attrs));
   }
 
@@ -500,7 +492,19 @@
           // columns, as well as popup menus to modify the columns. Last cell
           // is empty because of an extra column with "drill down" button for
           // each pivot table row.
-          m('tr', pivotTableHeaders, aggregationTableHeaders, m('td'))),
+          m('tr',
+            pivotTableHeaders,
+            aggregationTableHeaders,
+            m('td.menu', m(PopupMenuButton, {
+                icon: 'menu',
+                items: [{
+                  text: 'Edit mode',
+                  callback: () => {
+                    globals.dispatch(
+                        Actions.setPivotTableEditMode({editMode: true}));
+                  },
+                }],
+              })))),
         m('tbody', this.renderTotalsRow(state.queryResult), renderedRows));
   }
 
diff --git a/ui/src/test/diff_viewer/script.js b/ui/src/test/diff_viewer/script.js
index c9c14bd..b193c55 100644
--- a/ui/src/test/diff_viewer/script.js
+++ b/ui/src/test/diff_viewer/script.js
@@ -40,10 +40,16 @@
 function processLines(lines) {
   const container = document.querySelector('.container');
   container.innerHTML = '';
+  let hasErrors = false;
 
   // report.txt is a text file with a pair of file names on each line, separated
   // by semicolon. E.g. "screenshot.png;screenshot-diff.png"
   for (const line of lines) {
+    // Skip empty lines (happens when the file is completely empty).
+    if (line.length === 0) {
+      continue;
+    }
+
     const parts = line.split(';');
     if (parts.length !== 2) {
       console.warn(
@@ -52,6 +58,7 @@
       continue;
     }
 
+    hasErrors = true;
     const [output, diff] = parts;
     const outputImage = m('img');
     outputImage.src = output;
@@ -64,7 +71,7 @@
           m('div.cell', diff, m('div.image-wrapper', diffImage))));
   }
 
-  if (lines.length === 0) {
+  if (!hasErrors) {
     container.appendChild(m('div', 'All good!'));
   }
 }
