diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js
index 2b562b31325db1591767e853b2675f6131a2025d..35f9e07468fbbe0d02ea37314d52b4a3fd7fff92 100644
--- a/editors/demo/src/HHMI/HHMI.js
+++ b/editors/demo/src/HHMI/HHMI.js
@@ -12,7 +12,7 @@ const renderImage = file => {
     reader.onload = () => accept(reader.result);
     reader.onerror = () => fail(reader.error);
     // Some extra delay to make the asynchronicity visible
-    setTimeout(() => reader.readAsDataURL(file), 150);
+    setTimeout(() => reader.readAsDataURL(file), 4150);
   });
 };
 
diff --git a/wax-prosemirror-services/src/ImageService/Image.js b/wax-prosemirror-services/src/ImageService/Image.js
index 9333cb1182667f9bc546f2d95c1eba9659c827a5..860f9cc36a5476ba9cee0d0448122e57d344a7bb 100644
--- a/wax-prosemirror-services/src/ImageService/Image.js
+++ b/wax-prosemirror-services/src/ImageService/Image.js
@@ -1,10 +1,10 @@
 /* eslint-disable no-underscore-dangle */
-import React from 'react';
+import React, { useContext } from 'react';
 import { v4 as uuidv4 } from 'uuid';
 import { isEmpty } from 'lodash';
 import { injectable } from 'inversify';
 import { ImageUpload } from 'wax-prosemirror-components';
-import { Commands, Tools } from 'wax-prosemirror-core';
+import { WaxContext, Commands, Tools } from 'wax-prosemirror-core';
 import fileUpload from './fileUpload';
 
 @injectable()
@@ -35,10 +35,12 @@ export default class Image extends Tools {
 
   renderTool(view) {
     if (isEmpty(view)) return null;
+    const context = useContext(WaxContext);
     const upload = fileUpload(
       view,
       this.config.get('fileUpload'),
       this.pmplugins.get('imagePlaceHolder'),
+      context,
     );
     return this._isDisplayed ? (
       <ImageUpload
diff --git a/wax-prosemirror-services/src/ImageService/fileUpload.js b/wax-prosemirror-services/src/ImageService/fileUpload.js
index 584c9c82b5abaa8729fc5bf8d34c298d7fc230a9..b5fd0716b989fed695880a772bd9c4312d6b4ef9 100644
--- a/wax-prosemirror-services/src/ImageService/fileUpload.js
+++ b/wax-prosemirror-services/src/ImageService/fileUpload.js
@@ -6,7 +6,7 @@ const findPlaceholder = (state, id, placeholderPlugin) => {
   return found.length ? found[0].from : null;
 };
 
-export default (view, fileUpload, placeholderPlugin) => file => {
+export default (view, fileUpload, placeholderPlugin, context) => file => {
   const { state } = view;
   // A fresh object to act as the ID for this upload
   const id = {};
@@ -38,12 +38,12 @@ export default (view, fileUpload, placeholderPlugin) => file => {
       }
       // Otherwise, insert it at the placeholder's position, and remove
       // the placeholder
-      view.dispatch(
-        state.tr
+      context.pmViews.main.dispatch(
+        context.pmViews.main.state.tr
           .replaceWith(
             pos,
             pos,
-            view.state.schema.nodes.image.create({
+            context.pmViews.main.state.schema.nodes.image.create({
               src: url,
               id: uuidv4(),
               extraData,
diff --git a/wax-prosemirror-services/src/ImageService/plugins/placeHolderPlugin.js b/wax-prosemirror-services/src/ImageService/plugins/placeHolderPlugin.js
index 2d294a6977137a57782bd93a90ff2220efe21495..7cbe9bdfd3695f1db32fa5f06385f11a8eab1aef 100644
--- a/wax-prosemirror-services/src/ImageService/plugins/placeHolderPlugin.js
+++ b/wax-prosemirror-services/src/ImageService/plugins/placeHolderPlugin.js
@@ -20,9 +20,9 @@ export default key =>
           });
           set = set.add(tr.doc, [deco]);
         } else if (action && action.remove) {
-          // set = set.remove(
-          //   set.find(null, null, spec => spec.id === action.remove.id),
-          // );
+          set = set.remove(
+            set.find(null, null, spec => spec.id === action.remove.id),
+          );
         }
         return set;
       },