diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java
index 58a9f4e5..5808ba09 100755
--- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java
+++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java
@@ -267,7 +267,6 @@ public class FreemindExporter
     /*
      * MindmapFont format : fontName ; size ; color ; bold; italic;
      * eg: Verdana;10;#ffffff;bold;italic;
-     *
      */
     private void addFontNode(@NotNull com.wisemapping.jaxb.freemind.Node freemindNode, com.wisemapping.jaxb.wisemap.TopicType mindmapTopic) {
         final String fontStyle = mindmapTopic.getFontStyle();
diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/TransformerController.java b/wise-webapp/src/main/java/com/wisemapping/rest/TransformerController.java
index fb3865e7..e868781b 100644
--- a/wise-webapp/src/main/java/com/wisemapping/rest/TransformerController.java
+++ b/wise-webapp/src/main/java/com/wisemapping/rest/TransformerController.java
@@ -131,9 +131,8 @@ public class TransformerController extends BaseController {
                 throw new IllegalArgumentException("Unsupported export format");
 
         }
-        // IE does not support spaces in the name... As usual ...
-        if(filename!=null){
-            result.getModelMap().put("filename", filename.replaceAll(" ","_"));
+        if (filename != null) {
+            result.getModelMap().put("filename", filename);
         }
         return result;
     }
diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/view/ImportTransformationView.java b/wise-webapp/src/main/java/com/wisemapping/rest/view/ImportTransformationView.java
index 20dfc4a6..e5ff71e2 100644
--- a/wise-webapp/src/main/java/com/wisemapping/rest/view/ImportTransformationView.java
+++ b/wise-webapp/src/main/java/com/wisemapping/rest/view/ImportTransformationView.java
@@ -31,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
 import java.util.Map;
 
 public class ImportTransformationView extends AbstractView {
@@ -53,15 +54,32 @@ public class ImportTransformationView extends AbstractView {
         final InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8"));
         final Mindmap mindMap = importer.importMap("filename", "filename", is);
 
-        // Set file name...
+        // Set file name...:http://stackoverflow.com/questions/5325322/java-servlet-download-filename-special-characters/13359949#13359949
         final String fileName = (filename != null ? filename : "map") + "." + "xwise";
-        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+        setContentDisposition(request, response, fileName);
 
         // Write the conversion content ...
         final ServletOutputStream outputStream = response.getOutputStream();
         outputStream.print(mindMap.getXmlStr());
     }
 
+    private void setContentDisposition(HttpServletRequest request, HttpServletResponse response, String fileName) {
+        final String userAgent = request.getHeader("user-agent");
+        String disposition = fileName;
+        boolean isInternetExplorer = (userAgent.contains("MSIE"));
+        try {
+            byte[] fileNameBytes = fileName.getBytes((isInternetExplorer) ? ("windows-1250") : ("utf-8"));
+            String dispositionFileName = "";
+            for (byte b : fileNameBytes) {
+                dispositionFileName += (char) (b & 0xff);
+            }
+            disposition = "attachment; filename=\"" + dispositionFileName + "\"";
+        } catch (UnsupportedEncodingException ence) {
+            // ... handle exception ...
+        }
+        response.setHeader("Content-disposition", disposition);
+    }
+
     @Override
     public String getContentType() {
         return contentType;
diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java b/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java
index bc9171f0..f83a866c 100644
--- a/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java
+++ b/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java
@@ -33,6 +33,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.transform.stream.StreamResult;
+import java.io.UnsupportedEncodingException;
 import java.util.Map;
 
 public class TransformView extends AbstractView {
@@ -67,9 +68,9 @@ public class TransformView extends AbstractView {
         final String contentType = exportFormat.getContentType();
         response.setContentType(contentType);
 
-        // Set file name...
+        // Set file name...:http://stackoverflow.com/questions/5325322/java-servlet-download-filename-special-characters/13359949#13359949
         final String fileName = (filename != null ? filename : "map") + "." + exportFormat.getFileExtension();
-        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+        setContentDisposition(request, response, fileName);
 
         // Change image link URL.
         final ServletContext servletContext = request.getSession().getServletContext();
@@ -93,6 +94,24 @@ public class TransformView extends AbstractView {
         }
     }
 
+    private void setContentDisposition(HttpServletRequest request, HttpServletResponse response, String fileName) {
+        final String userAgent = request.getHeader("user-agent");
+        boolean isInternetExplorer = (userAgent.contains("MSIE"));
+
+        String disposition = fileName;
+        try {
+            byte[] fileNameBytes = fileName.getBytes((isInternetExplorer) ? ("windows-1250") : ("utf-8"));
+            String dispositionFileName = "";
+            for (byte b : fileNameBytes) {
+                dispositionFileName += (char) (b & 0xff);
+            }
+            disposition = "attachment; filename=\"" + dispositionFileName + "\"";
+        } catch (UnsupportedEncodingException ence) {
+            // ... handle exception ...
+        }
+        response.setHeader("Content-disposition", disposition);
+    }
+
     @Override
     public String getContentType() {
         return contentType;