Index: trunk/src/org/openstreetmap/josm/io/session/GenericSessionExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/GenericSessionExporter.java	(revision 14717)
+++ trunk/src/org/openstreetmap/josm/io/session/GenericSessionExporter.java	(revision 14718)
@@ -13,5 +13,4 @@
 import java.io.IOException;
 import java.io.OutputStream;
-import java.nio.file.Path;
 
 import javax.swing.AbstractAction;
@@ -194,11 +193,5 @@
             File f = layer.getAssociatedFile();
             if (f != null) {
-                final Path sessionDirectory = support.getOutput().getParent();
-                final String fileString;
-                if (f.toPath().startsWith(sessionDirectory)) {
-                    fileString = sessionDirectory.relativize(f.toPath()).toString();
-                } else {
-                    fileString = f.toPath().toString();
-                }
+                final String fileString = support.relativize(f.toPath());
                 file.appendChild(support.createTextNode(fileString));
             }
Index: trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java	(revision 14717)
+++ trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java	(revision 14718)
@@ -69,6 +69,6 @@
                 break;
             }
-            addAttr("file", entry.getFile().getPath(), imgElem, support);
-            // FIXME: relative filenames as option
+            final String fileString = support.relativize(entry.getFile().toPath());
+            addAttr("file", fileString, imgElem, support);
             // FIXME: include images as option (?)
 
Index: trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 14717)
+++ trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 14718)
@@ -207,4 +207,22 @@
             return output;
         }
+
+        /**
+         * Returns a relative path w.r.t. the {@linkplain #getOutput output} directory
+         * @param path the path to relativize
+         * @return the relative path
+         * @see Path#relativize(Path)
+         */
+        String relativize(final Path path) {
+            if (getOutput() == null) {
+                return path.toString();
+            }
+            final Path sessionDirectory = getOutput().getParent();
+            if (path.startsWith(sessionDirectory)) {
+                return sessionDirectory.relativize(path).toString();
+            } else {
+                return path.toString();
+            }
+        }
     }
 
