diff --git a/build.gradle b/build.gradle
index b6d7a5afcc91ec47ca55198ab6b256454939718f..63ac93f199ff13d7dc16e4fc00fa1279e9cf75b0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -116,6 +116,7 @@ configurations {
     all*.exclude group: 'jamon'
     all*.exclude group: 'jakarta-regexp'
     all*.exclude group: 'org.apache.geronimo.specs'
+    all*.exclude group: 'servletapi'
     all*.exclude group: 'velocity'
     all*.exclude group: 'xmlrpc'
     all*.exclude group: 'ant', module: 'ant'
diff --git a/src/main/java/org/nrg/dcm/DicomSCPManager.java b/src/main/java/org/nrg/dcm/DicomSCPManager.java
index 73269ae4c36bad7edfdcadf525b684e7528d530e..1503473bafc9884ce692669845ffc9e7dc64a5ab 100644
--- a/src/main/java/org/nrg/dcm/DicomSCPManager.java
+++ b/src/main/java/org/nrg/dcm/DicomSCPManager.java
@@ -55,7 +55,8 @@ public class DicomSCPManager implements ApplicationContextAware {
 
     /**
      * Sets the preferences for the DICOM SCP manager.
-     * @param preferences    The preferences to set.
+     *
+     * @param preferences The preferences to set.
      */
     @SuppressWarnings("unused")
     public void setPreferences(final DicomSCPPreference preferences) {
@@ -195,7 +196,7 @@ public class DicomSCPManager implements ApplicationContextAware {
     }
 
     private void createDicomScpFromInstance(final DicomSCPInstance instance) throws IOException {
-        final String scpId = instance.getScpId();
+        final String   scpId    = instance.getScpId();
         final DicomSCP dicomScp = DicomSCP.create(scpId, Executors.newCachedThreadPool(), instance.getPort(), _provider, instance.getAeTitle(), getIdentifier(instance.getIdentifier()), getDicomFileNamer(instance.getFileNamer()));
         _dicomSCPs.put(scpId, dicomScp);
         if (instance.isEnabled()) {
@@ -226,9 +227,10 @@ public class DicomSCPManager implements ApplicationContextAware {
     @Inject
     private SiteConfigurationService _siteConfigurationService;
 
-    private final Map<String, DicomSCP> _dicomSCPs = new HashMap<>();
+    @Inject
+    private DicomSCPPreference _preferences;
 
+    private final Map<String, DicomSCP> _dicomSCPs = new HashMap<>();
     private       ApplicationContext _context;
-    private       DicomSCPPreference _preferences;
     private final XnatUserProvider   _provider;
 }
diff --git a/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java b/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java
index 75f03eeb9a331839046cf2f66544db95ec519d22..78ab6aaf7878a3538339c6ba9c497729480327b1 100644
--- a/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java
+++ b/src/main/java/org/nrg/dcm/preferences/DicomSCPPreference.java
@@ -42,5 +42,5 @@ public class DicomSCPPreference extends AbstractPreferenceBean {
         }
     }
     private static final Logger _log = LoggerFactory.getLogger(DicomSCPInstance.class);
-    private static final String PREF_ID = "dicomSCPInstance";
+    private static final String PREF_ID = "dicomSCPInstances";
 }
diff --git a/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java b/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java
index 13b143fbeddbfb023c076a38717fa58747861d34..35164494b10c42d83973b895e8d1444b86f29da5 100644
--- a/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java
+++ b/src/main/java/org/nrg/xnat/configuration/DicomImportConfig.java
@@ -8,6 +8,7 @@ import org.nrg.xdat.om.XnatProjectdata;
 import org.nrg.xnat.DicomObjectIdentifier;
 import org.nrg.xnat.utils.XnatUserProvider;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 import java.util.ArrayList;
@@ -15,6 +16,7 @@ import java.util.Arrays;
 import java.util.List;
 
 @Configuration
+@ComponentScan("org.nrg.dcm.preferences")
 public class DicomImportConfig {
     @Bean
     public DicomObjectIdentifier<XnatProjectdata> dicomObjectIdentifier(final XnatUserProvider provider) {
diff --git a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
index a3da58595d14157022526667b1a18d41afa567de..5d89b0b30b889970285f0e1ce3168fc61dcd5c31 100644
--- a/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
+++ b/src/main/java/org/nrg/xnat/initialization/XnatWebAppInitializer.java
@@ -84,20 +84,24 @@ public class XnatWebAppInitializer extends AbstractAnnotationConfigDispatcherSer
     }
 
     private MultipartConfigElement getMultipartConfigElement() {
-        final String temp;
+        final String root;
+        final String subfolder;
         if (StringUtils.isNotBlank(System.getProperty("xnat.home"))) {
-            temp = System.getProperty("xnat.home");
+            root = System.getProperty("xnat.home");
+            subfolder = "work";
         } else {
-            temp = System.getProperty("java.io.tmpdir");
+            root = System.getProperty("java.io.tmpdir");
+            subfolder = "xnat";
         }
         final String prefix = "xnat_" + Long.toString(System.nanoTime());
         try {
-            final Path path = Paths.get(temp);
+            final Path path = Paths.get(root, subfolder);
             path.toFile().mkdirs();
             final Path tmpDir = Files.createTempDirectory(path, prefix);
+            tmpDir.toFile().deleteOnExit();
             return new MultipartConfigElement(tmpDir.toAbsolutePath().toString(), MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD);
         } catch (IOException e) {
-            throw new NrgServiceRuntimeException("An error occurred trying to create the temp folder " + prefix + " in the containing folder "+ temp);
+            throw new NrgServiceRuntimeException("An error occurred trying to create the temp folder " + prefix + " in the containing folder "+ root);
         }
     }