Index: import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryFolder.java
===================================================================
--- import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryFolder.java	(revision 509)
+++ import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryFolder.java	(working copy)
@@ -16,8 +16,14 @@
 
 package org.onehippo.forge.migration.model;
 
-import org.onehippo.forge.migration.beans.common.MetaData;
+import java.io.File;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.io.FilenameUtils;
 import org.onehippo.forge.migration.beans.ImportableBean;
+import org.onehippo.forge.migration.beans.common.MetaData;
 import org.onehippo.forge.migration.converters.RuntimePathCreator;
 import org.onehippo.forge.migration.exc.ImportConfigurationException;
 import org.onehippo.forge.migration.exc.ImportInvalidUsageException;
@@ -29,11 +35,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 /**
  * RepositoryFolder
  */
@@ -105,9 +106,9 @@
         }
 
         // on Windows the path will have backslashes which are not JCR path separators
-        repositoryPath = repositoryPath.replaceAll("\\\\", "/");
+        repositoryPath = FilenameUtils.normalize(repositoryPath, true);
 
-        originalPath = config.getInternalLinkPrefix() + (repositoryPath.startsWith("/") ? repositoryPath.substring(1, repositoryPath.length()) : repositoryPath);
+        originalPath = FilenameUtils.normalize(config.getInternalLinkPrefix() + '/' + repositoryPath, true);
 
         repositoryPath = renameFolders(repositoryPath);
         // TODO do renaming only once or give priority to dynamic one?
Index: import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryDocument.java
===================================================================
--- import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryDocument.java	(revision 509)
+++ import-components/src/main/java/org/onehippo/forge/migration/model/RepositoryDocument.java	(working copy)
@@ -20,6 +20,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.commons.io.FilenameUtils;
 import org.onehippo.forge.migration.beans.ImportableBean;
 import org.onehippo.forge.migration.beans.common.MetaData;
 import org.onehippo.forge.migration.locators.ImportFileLocator;
@@ -94,15 +95,15 @@
         }
         if (repositoryPath == null) {
             repositoryPath = stripExtension(file.getName());
-
         }
-        originalPath = parentFolder.getOriginalPath() + "/" + file.getName();
+
+        originalPath = FilenameUtils.normalize(parentFolder.getOriginalPath() + "/" + file.getName(), true);
 
         if (repositoryPath.length() > 0) {
             repositoryPath = XmlUtils.encodeName(repositoryPath);
         }
 
-        absoluteRepositoryPath = parentFolder.getAbsoluteRepositoryPath() + "/" + repositoryPath;
+        absoluteRepositoryPath = FilenameUtils.normalize(parentFolder.getAbsoluteRepositoryPath() + "/" + repositoryPath, true);
 
     }
 
Index: import-components/src/main/java/org/onehippo/forge/migration/DocumentCreator.java
===================================================================
--- import-components/src/main/java/org/onehippo/forge/migration/DocumentCreator.java	(revision 509)
+++ import-components/src/main/java/org/onehippo/forge/migration/DocumentCreator.java	(working copy)
@@ -165,7 +165,8 @@
             setHippoDocumentDefaultOrWorkflowFields(node);
 
             saveInBatch();
-            ImportContext.getLinksMappings().addUuidMapping(folderPath + "/" + documentName, node.getUUID());
+            ImportContext.getLinksMappings().addUuidMapping(folderPath + "/" + documentName, node.getIdentifier());
+            ImportContext.getLinksMappings().doPostponedRefs(folderPath + "/" + documentName, this);
             stats.incrementDocuments();
             return true;
         }
@@ -295,7 +296,7 @@
                 createImageBinary(node, content);
 
                 saveInBatch();
-                ImportContext.getLinksMappings().addUuidMapping(content.getOriginalPath(), node.getUUID());
+                ImportContext.getLinksMappings().addUuidMapping(content.getOriginalPath(), node.getIdentifier());
                 log.info("created image: " + content.getAbsoluteRepositoryPath());
                 stats.incrementImages();
             }
@@ -304,7 +305,7 @@
                 createAssetBinary(node, content);
 
                 saveInBatch();
-                ImportContext.getLinksMappings().addUuidMapping(content.getOriginalPath(), node.getUUID());
+                ImportContext.getLinksMappings().addUuidMapping(content.getOriginalPath(), node.getIdentifier());
                 log.info("created asset: " + content.getName());
                 stats.incrementAssets();
             }
@@ -425,7 +426,7 @@
         try {
             log.debug("Requesting UUID for repositoryPath " + repositoryPath );
             final HippoNode node = (HippoNode) session.getItem(repositoryPath);
-            final String uuid = node.getUUID();
+            final String uuid = node.getIdentifier();
             // store it for other documents for faster retrieval
             ImportContext.getLinksMappings().addUuidMapping(repositoryPath, uuid);
             if ( unknownPaths != null && unknownPaths.contains(repositoryPath) ) {
@@ -433,17 +434,12 @@
               log.warn("Previously unknown path now known. " + unknownPaths.size() + " unknowns left: " + repositoryPath );
             }
             return uuid;
-        }
-        catch (RepositoryException e) {
-            if ( unknownPaths == null || ! unknownPaths.contains( repositoryPath )) {
-              if ( repositoryPath != null ) {
+        } catch (RepositoryException e) {
+            if (unknownPaths == null || !unknownPaths.contains(repositoryPath)) {
                 unknownPaths.add(repositoryPath);
-                log.warn(unknownPaths.size() + " paths unknown yet. New unknown is: " + repositoryPath );
-              } else {
-                log.error("Broken link?: asking for uuid of null path." );
-              }
+                log.warn(unknownPaths.size() + " paths unknown yet. New unknown is: " + repositoryPath);
             } else {
-              log.warn("Unknown path requested again: " + repositoryPath );
+                log.debug("Unknown path requested again: " + repositoryPath);
             }
         }
         return null;
@@ -701,7 +697,7 @@
           //  log.error("bean unknown for jcr node " + newNode.getName() + " in node " + node.getName());
           // } else {
             log.debug( "Found bean of class " + bean.getClass().getName() + " for " + newNode.getName() + " in node " + node.getName());
-            bean.beforePersisted(node, this);
+            bean.beforePersisted(newNode, this);
         }
     }
 
Index: pom.xml
===================================================================
--- pom.xml	(revision 509)
+++ pom.xml	(working copy)
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.onehippo.cms7</groupId>
     <artifactId>hippo-cms7-release</artifactId>
-    <version>7.7.0</version>
+    <version>7.7.5</version>
   </parent>
 
   <name>Hippo Content Import Tool</name>
@@ -37,7 +37,7 @@
     <servlet-api.version>2.4</servlet-api.version>
     <javax.jcr.version>2.0</javax.jcr.version>
 
-    <lib.commons-io.version>1.4</lib.commons-io.version>
+    <lib.commons-io.version>2.2</lib.commons-io.version>
     <lib.commons-beanutils.version>1.8.3</lib.commons-beanutils.version>
     <lib.commons-configuration.version>1.8</lib.commons-configuration.version>
     <lib.google-collections.version>1.0</lib.google-collections.version>
