diff --git a/src/main/java/se/su/dsv/scipro/io/facade/ImporterFacade.java b/src/main/java/se/su/dsv/scipro/io/facade/ImporterFacade.java
index d34bea52a4..91ccbd42ef 100644
--- a/src/main/java/se/su/dsv/scipro/io/facade/ImporterFacade.java
+++ b/src/main/java/se/su/dsv/scipro/io/facade/ImporterFacade.java
@@ -525,20 +525,30 @@ public class ImporterFacade {
     public void addUnitToSupervisor(PersonDTO supervisorDTO, UnitDTO unitDTO) {
         User supervisorUser = userDao.getUserByIdentifier(supervisorDTO.id);
         Employee supervisor = supervisorDao.getFrom(supervisorUser);
-        if (supervisor != null) {
-            List<Keyword> currentUnits = supervisor.getKeywords().getFiltered(keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
-            //If supervisor is already assigned to a unit, remove to make sure only the latest unit is being added since we only allow one unit in Scipro.
-            //Supervisor is not going to be allowed to have more than one unit in the future, but some have two in Daisy at the moment.
-            if (!currentUnits.isEmpty()) {
+        if (supervisor != null){
+            if (supervisor.getUnit()!=null){
                 logger.info(supervisor.getUser().getFullName() + " is already attached to a unit and this is being overwritten.");
-                supervisor.getKeywords().getAll().removeAll(currentUnits);
             }
-            Keyword unitToAdd = keywordDao.getKeywordByIdentifierAndType(unitDTO.id, keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
-            logger.debug("Adding unit: " + unitToAdd.getKeyword() + " to supervisor: " + supervisor.getUser().getFullName());
-            supervisor.getKeywords().getAll().add(unitToAdd);
+            Unit unitToAdd = unitService.findByIdentifier(unitDTO.getId());
+            logger.debug("Adding unit: " + unitToAdd.getTitle() + " to supervisor: " + supervisor.getUser().getFullName());
+            supervisor.setUnit(unitToAdd);
         } else {
             logger.debug("Can't find supervisor: " + supervisorDTO.id);
         }
+//        if (supervisor != null) {
+//            List<Keyword> currentUnits = supervisor.getKeywords().getFiltered(keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
+//            //If supervisor is already assigned to a unit, remove to make sure only the latest unit is being added since we only allow one unit in Scipro.
+//            //Supervisor is not going to be allowed to have more than one unit in the future, but some have two in Daisy at the moment.
+//            if (!currentUnits.isEmpty()) {
+//                logger.info(supervisor.getUser().getFullName() + " is already attached to a unit and this is being overwritten.");
+//                supervisor.getKeywords().getAll().removeAll(currentUnits);
+//            }
+//            Keyword unitToAdd = keywordDao.getKeywordByIdentifierAndType(unitDTO.id, keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
+//            logger.debug("Adding unit: " + unitToAdd.getKeyword() + " to supervisor: " + supervisor.getUser().getFullName());
+//            supervisor.getKeywords().getAll().add(unitToAdd);
+//        } else {
+//            logger.debug("Can't find supervisor: " + supervisorDTO.id);
+//        }
     }
 
     private void mergeLinkedResearchAreas(final User user, final Set<ResearchAreaDTO> areas) {
@@ -653,11 +663,13 @@ public class ImporterFacade {
         for (Employee supervisor : currentSupervisors) {
             if (!supervisorsWithRemoteUnit.contains(supervisor)) {
                 logger.debug(supervisor.getNameAsString() + " does not have a remote unit. Searching for local units to remove.");
-                List<Keyword> unitsToRemove = supervisor.getKeywords().getFiltered(keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
-                if (!unitsToRemove.isEmpty()) {
-                    supervisor.getKeywords().getAll().removeAll(unitsToRemove);
-                    logger.debug("Removed units from: " + supervisor.getNameAsString());
-                }
+                supervisor.setUnit(null);
+                logger.debug("Removed units from: " + supervisor.getNameAsString());
+//                List<Keyword> unitsToRemove = supervisor.getKeywords().getFiltered(keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
+//                if (!unitsToRemove.isEmpty()) {
+//                    supervisor.getKeywords().getAll().removeAll(unitsToRemove);
+//                    logger.debug("Removed units from: " + supervisor.getNameAsString());
+//                }
             }
         }
     }
diff --git a/src/main/java/se/su/dsv/scipro/io/impl/ExternalImporterDaisyImpl.java b/src/main/java/se/su/dsv/scipro/io/impl/ExternalImporterDaisyImpl.java
index 7c64da2864..f6db2004a8 100644
--- a/src/main/java/se/su/dsv/scipro/io/impl/ExternalImporterDaisyImpl.java
+++ b/src/main/java/se/su/dsv/scipro/io/impl/ExternalImporterDaisyImpl.java
@@ -150,7 +150,8 @@ public class ExternalImporterDaisyImpl implements ExternalImporter {
 			}
 		});
 
-		importerFacade.addUnexistingUnitsAsKeywords(unitSet);
+		importerFacade.addUnexistingUnitsAsUnits(unitSet);
+
 		Set<PersonDTO> allSupervisorsOnUnits = new HashSet<PersonDTO>();
 		for (final UnitDTO unitDTO : unitSet) {
 			Set<PersonDTO> supervisorSet = fetchSupervisorsOnUnit(new HashMap<String, String>(), ApiClient.REQUEST_TYPE.GET, new UrlProcessor() {