diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
index f8d023a29dba47be6db6d89f99ac23fc93664bde..30215e3896ea9f334b5370b88e8085e52b4f997e 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
@@ -1,6 +1,11 @@
 import { AnnotationComponent } from 'substance'
 
 class TrackChangeComponent extends AnnotationComponent {
+
+  didMount () {
+    this.context.editorSession.onUpdate('document', this.onTrackChangesUpdated, this)
+  }
+
   render ($$) {
     const { id, status, user } = this.props.node
     const canAct = this.canAct()
@@ -64,7 +69,6 @@ class TrackChangeComponent extends AnnotationComponent {
   resolve (action) {
     const annotation = this.props.node
     const provider = this.getProvider()
-    console.log('provider', provider)
 
     provider.resolve(annotation, action)
   }
@@ -88,7 +92,6 @@ class TrackChangeComponent extends AnnotationComponent {
     const annotation = this.props.node
     const annotationSelection = annotation.getSelection()
 
-    console.log('context', this.context)
     const surface = this.context.surface
 
     const selection = surface.editorSession.getSelection()
@@ -101,6 +104,12 @@ class TrackChangeComponent extends AnnotationComponent {
     if (overlaps && !contains) return true
     return false
   }
+
+  onTrackChangesUpdated (change) {
+    const trackChangesProvider = this.getProvider()
+    trackChangesProvider.handleDocumentChange(change)
+    this.rerender()
+  }
 }
 
 export default TrackChangeComponent
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
index 900b4983565fb87b8cd0c64113ad50047d96a5f5..e890b092bc815a803d30a35e0112085b5cf9d191 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangesProvider.js
@@ -25,9 +25,6 @@ class TrackChangesProvider extends TOCProvider {
   constructor (document, config) {
     super(document, config)
     // config.documentSession.on('didUpdate', this.handleUndoRedo, this)
-    console.log('this track provider', this)
-    // HACK -- use TOCProvider's event to capture new / deleted changes
-    this.on('toc:updated', this.reComputeEntries, this)
 
     // handle button actions
     const editor = this.config.controller
@@ -553,8 +550,6 @@ class TrackChangesProvider extends TOCProvider {
     const selection = annotation.getSelection()
     const status = annotation.status
 
-    console.log('resolve', this)
-
     this.removeTrackAnnotation(annotation)
 
     if (
@@ -576,7 +571,6 @@ class TrackChangesProvider extends TOCProvider {
     })
 
     const entries = this.sortNodes(changes)
-    console.log('entries', entries)
     return entries
   }