diff --git a/src/python/dm/ds_web_service/service/impl/storageManager.py b/src/python/dm/ds_web_service/service/impl/storageManager.py
index da5003ea22156d68250b82037f0575c89e0fb8a4..36d7181212bd8eec8488924dface83052215e233 100755
--- a/src/python/dm/ds_web_service/service/impl/storageManager.py
+++ b/src/python/dm/ds_web_service/service/impl/storageManager.py
@@ -8,6 +8,7 @@ from dm.common.utility.loggingManager import LoggingManager
 from dm.common.utility.configurationManager import ConfigurationManager
 from dm.common.utility.singleton import Singleton
 from dm.common.utility.osUtility import OsUtility
+from dm.common.utility.threadingUtility import ThreadingUtility
 
 
 class StorageManager(Singleton):
@@ -47,44 +48,33 @@ class StorageManager(Singleton):
         storageDirectory = os.path.normpath(storageDirectory)
         return storageDirectory
 
+    @ThreadingUtility.synchronize
     def updateExperimentWithStorageDataDirectory(self, experiment):
-        self.lock.acquire()
-        try:
-            storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
-            if os.path.exists(storageDirectory):
-                experiment['storageDirectory'] = storageDirectory
-                experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
-            return storageDirectory
-        finally:
-            self.lock.release()
+        storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
+        if os.path.exists(storageDirectory):
+            experiment['storageDirectory'] = storageDirectory
+            experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
+        return storageDirectory
 
+    @ThreadingUtility.synchronize
     def createExperimentDataDirectory(self, experiment):
-        self.lock.acquire()
-        try:
-            experimentName = experiment.get('name')
-            storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
-            if os.path.exists(storageDirectory):
-                self.logger.debug('Data directory %s for experiment %s already exists' % (storageDirectory, experimentName))
-            else:
-                self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, storageDirectory))
-                OsUtility.createDir(storageDirectory)
-            experiment['storageDirectory'] = storageDirectory
-        finally:
-            self.lock.release()
+        experimentName = experiment.get('name')
+        storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
+        if os.path.exists(storageDirectory):
+            self.logger.debug('Data directory %s for experiment %s already exists' % (storageDirectory, experimentName))
+        else:
+            self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, storageDirectory))
+            OsUtility.createDir(storageDirectory)
+        experiment['storageDirectory'] = storageDirectory
+        experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
       
+    @ThreadingUtility.synchronize
     def start(self):
-        self.lock.acquire()
-        try:
-           self.logger.debug('Started storage manager')
-        finally:
-           self.lock.release()
+        self.logger.debug('Started storage manager')
 
+    @ThreadingUtility.synchronize
     def stop(self):
-        self.lock.acquire()
-        try:
-           self.logger.debug('Stopped storage manager')
-        finally:
-           self.lock.release()
+        self.logger.debug('Stopped storage manager')
 
 ####################################################################
 # Testing