public void run() {
						StyledDocument doc = decoder.getDocument();
						if (doc == null)
							return;
						if (getDocument() instanceof DefaultStyledDocument) {
							DefaultStyledDocument dsd = (DefaultStyledDocument) getDocument();
							// release dependency of document on listeners for it to be garbage-collected
							DocumentListener[] dl = dsd.getDocumentListeners();
							if (dl != null) {
								for (DocumentListener i : dl)
									doc.removeDocumentListener(i);
							}
							UndoableEditListener[] ue = dsd.getUndoableEditListeners();
							if (ue != null) {
								for (UndoableEditListener i : ue)
									doc.removeUndoableEditListener(i);
							}
						}
						// getDocument().removeUndoableEditListener(undoHandler);
						// getDocument().removeDocumentListener(editResponder);
						doc.addUndoableEditListener(undoHandler);
						doc.addDocumentListener(editResponder);
						setStyledDocument(doc);
						// notify Editor to update buttons accordingly
						notifyPageListeners(new PageEvent(Page.this, PageEvent.PAGE_READ_END));
					}