diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts
index d498b387c5a048c4b0d20c81d179ab8b77dc1517..9df4fdce23832c51a9ec0e1d376c16ddae8e1f6a 100644
--- a/src/mol-plugin/context.ts
+++ b/src/mol-plugin/context.ts
@@ -11,7 +11,7 @@ import { CustomPropertyRegistry } from '../mol-model-props/common/custom-propert
 import { StructureRepresentationRegistry } from '../mol-repr/structure/registry';
 import { VolumeRepresentationRegistry } from '../mol-repr/volume/registry';
 import { State, StateTransform, StateTransformer } from '../mol-state';
-import { Task } from '../mol-task';
+import { Task, Progress } from '../mol-task';
 import { ColorTheme } from '../mol-theme/color';
 import { SizeTheme } from '../mol-theme/size';
 import { ThemeRegistryContext } from '../mol-theme/theme';
@@ -176,8 +176,8 @@ export class PluginContext {
         return this.tasks.run(task);
     }
 
-    requestTaskAbort(task: Task<any> | number, reason?: string) {
-        this.tasks.requestAbort(task, reason);
+    requestTaskAbort(progress: Progress, reason?: string) {
+        this.tasks.requestAbort(progress, reason);
     }
 
     dispose() {
diff --git a/src/mol-plugin/ui/task.tsx b/src/mol-plugin/ui/task.tsx
index e05171d707aba0749ce29ef52a1ff040092e93af..81c73ff9bbe184765a741fba9a45664e6770be08 100644
--- a/src/mol-plugin/ui/task.tsx
+++ b/src/mol-plugin/ui/task.tsx
@@ -34,7 +34,7 @@ export class BackgroundTaskProgress extends PluginUIComponent<{ }, { tracked: Or
 class ProgressEntry extends PluginUIComponent<{ event: TaskManager.ProgressEvent }> {
 
     abort = () => {
-        this.plugin.requestTaskAbort(this.props.event.id, 'User Request');
+        this.plugin.requestTaskAbort(this.props.event.progress, 'User Request');
     }
 
     render() {
diff --git a/src/mol-plugin/util/task-manager.ts b/src/mol-plugin/util/task-manager.ts
index 6bd257f26afbd28ad9ee64dc582aa492379507b8..dd8ce979e8668592a092cf9d9232e60c58ea20ff 100644
--- a/src/mol-plugin/util/task-manager.ts
+++ b/src/mol-plugin/util/task-manager.ts
@@ -22,7 +22,7 @@ class TaskManager {
 
     private track(internalId: number, taskId: number) {
         return (progress: Progress) => {
-            if (progress.canAbort && progress.requestAbort && this.abortRequests.has(taskId)) {
+            if (progress.canAbort && progress.requestAbort && this.abortRequests.has(progress.root.progress.taskId)) {
                 progress.requestAbort(this.abortRequests.get(taskId));
             }
             const elapsed = now() - progress.root.progress.startedTime;
@@ -45,8 +45,8 @@ class TaskManager {
         }
     }
 
-    requestAbort(task: Task<any> | number, reason?: string) {
-        this.abortRequests.set(typeof task === 'number' ? task : task.id, reason);
+    requestAbort(progress: Progress, reason?: string) {
+        this.abortRequests.set(progress.root.progress.taskId, reason);
     }
 
     dispose() {