diff --git a/web/app/static/js/modules/corpus_analysis/client/callbacks.js b/web/app/static/js/modules/corpus_analysis/client/callbacks.js
index 66fe3c8f1410a60d610100e665ed9af5a9a21252..7a50726d44784f786283eea8627c43869be4615d 100644
--- a/web/app/static/js/modules/corpus_analysis/client/callbacks.js
+++ b/web/app/static/js/modules/corpus_analysis/client/callbacks.js
@@ -33,13 +33,24 @@ function prepareQueryData() {
  */
 function saveQueryData() {
   let [payload, client, results, rest] = arguments;
+  // Get data matches length before new chunk data is being inserted
   let dataLength = results.data.matches.length;
   if (client.dynamicMode) {
-    // get data matches length before new chunk data is being inserted
-    // incorporating new chunk data into full results
+    // Incorporating new chunk data into full results
     results.data.matches.push(...payload.chunk.matches);
     results.data.addData(payload.chunk.cpos_lookup, 'cpos_lookup');
     results.data.addData(payload.chunk.text_lookup, 'text_lookup');
+    console.log(payload.chunk.text_lookup);
+     /**
+      * Increment match_counts per text in a global results varaible because
+      * they are coming in chunkwise.
+      */
+    for (let [text_key, value] of Object.entries(payload.chunk.text_lookup)) {
+        if (!(text_key in results.tmp_match_counts)) {
+          results.tmp_match_counts[text_key] = {match_count: 0};
+        }
+        results.tmp_match_counts[text_key].match_count += payload.chunk.text_lookup[text_key].match_count;
+    }
     results.data.cpos_ranges = payload.chunk.cpos_ranges;
     let queryFormElement = document.querySelector('#query-form');
     results.data.getQueryStr(queryFormElement);
@@ -51,6 +62,10 @@ function saveQueryData() {
     console.info('Query data chunk saved', results.data);
     if (client.requestQueryProgress === 100) {
       client.isBusy = false;
+      // Update text_lookup with tmp_match_counts.
+      for (let [text_key, value] of Object.entries(results.tmp_match_counts)) {
+        results.data.text_lookup[text_key].match_count = results.tmp_match_counts[text_key].match_count;
+      }
       client.notifyView('query-data-recieved');
     }
   } else {
diff --git a/web/app/static/js/modules/corpus_analysis/model/Results.js b/web/app/static/js/modules/corpus_analysis/model/Results.js
index 2d1ab7df1e66dc6fb2e6317e1a1abf0a10e97cfe..e2abd66e39128d41a97c19f9f5961085a4af6bb6 100644
--- a/web/app/static/js/modules/corpus_analysis/model/Results.js
+++ b/web/app/static/js/modules/corpus_analysis/model/Results.js
@@ -22,6 +22,8 @@ class Results {
     this.fullResultsData.init();
     this.subResultsData.init();
     this.inspectResultsData.init();
+    // Temporarly save match counts per text
+    this.tmp_match_counts = {};
   }
 
 }