diff -Naur ICEpdf-4.0.1-src.orig/icepdf/core/src/org/icepdf/core/pobjects/Page.java ICEpdf-4.0.1-src/icepdf/core/src/org/icepdf/core/pobjects/Page.java --- ICEpdf-4.0.1-src.orig/icepdf/core/src/org/icepdf/core/pobjects/Page.java 2010-03-31 09:01:26.000000000 +0200 +++ ICEpdf-4.0.1-src/icepdf/core/src/org/icepdf/core/pobjects/Page.java 2010-04-20 14:38:41.322585700 +0200 @@ -1408,18 +1408,23 @@ dispose(true); } - public synchronized void addPaintPageListener(PaintPageListener listener) { - // add a listener if it is not already registered - if (!paintPageListeners.contains(listener)) { - paintPageListeners.addElement(listener); + public void addPaintPageListener( PaintPageListener listener ) { + // add a listener if it is not already registered + synchronized ( paintPageListeners ) { + if ( !paintPageListeners.contains( listener ) ) { + paintPageListeners.addElement( listener ); } + } } - - public synchronized void removePaintPageListener(PaintPageListener listener) { - // remove a listener if it is already registered - if (paintPageListeners.contains(listener)) { - paintPageListeners.removeElement(listener); + + public void removePaintPageListener( PaintPageListener listener ) { + // remove a listener if it is already registered + synchronized ( paintPageListeners ) { + if ( paintPageListeners.contains( listener ) ) { + paintPageListeners.removeElement( listener ); } + + } } public void notifyPaintPageListeners() {