diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
index 4dedc89..610f463 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
@@ -506,12 +506,12 @@
 					_doCommonGetModel(file, id, sharedObject,rwType);
 					break;
 				} else if (sharedObject == testObject) {
-					SYNC.release();
 					synchronized(sharedObject) {
 						if (sharedObject.theSharedModel!=null) {
 							_incrCount(sharedObject, rwType);
 						}
 					}
+					SYNC.release();
 					break;
 				} else {
 					// we got a different object than what we were expecting
@@ -1787,13 +1787,14 @@
 			
 			Assert.isNotNull(sharedObject, "release was requested on a model that was not being managed"); //$NON-NLS-1$
 			sharedObject.waitForLoadAttempt();
-			
+			SYNC.acquire();
 			synchronized(sharedObject) {
 				_decrCount(sharedObject, EDIT);
 				if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
 					discardModel(id, sharedObject);
 				}
 			}
+			SYNC.release();
 			// if edit goes to zero, but still open for read,
 			// then we should reload here, so we are in synch with
 			// contents on disk.
@@ -1902,12 +1903,14 @@
 			Assert.isNotNull(sharedObject, "release was requested on a model that was not being managed"); //$NON-NLS-1$
 			sharedObject.waitForLoadAttempt();
 		}
+		SYNC.acquire();
 		synchronized(sharedObject) {
 			_decrCount(sharedObject, READ);
 			if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
 				discardModel(id, sharedObject);
 			}
 		}
+		SYNC.release();
 	}
 
 	/**
