diff --git a/src/containers/project-saver.jsx b/src/containers/project-saver.jsx
index 4886ee6394c389b0280b6a939045f8c397d14d0f..0c755c8538d612547108508f9bd688a39eaf8ec9 100644
--- a/src/containers/project-saver.jsx
+++ b/src/containers/project-saver.jsx
@@ -29,15 +29,21 @@ class ProjectSaver extends React.Component {
         document.body.appendChild(saveLink);
 
         this.props.vm.saveProjectSb3().then(content => {
-            const url = window.URL.createObjectURL(content);
-
-            saveLink.href = url;
-
             // TODO user-friendly project name
             // File name: project-DATE-TIME
             const date = new Date();
             const timestamp = `${date.toLocaleDateString()}-${date.toLocaleTimeString()}`;
-            saveLink.download = `untitled-project-${timestamp}.sb3`;
+            const filename = `untitled-project-${timestamp}.sb3`;
+
+            // Use special ms version if available to get it working on Edge.
+            if (navigator.msSaveOrOpenBlob) {
+                navigator.msSaveOrOpenBlob(content, filename);
+                return;
+            }
+
+            const url = window.URL.createObjectURL(content);
+            saveLink.href = url;
+            saveLink.download = filename;
             saveLink.click();
             window.URL.revokeObjectURL(url);
             document.body.removeChild(saveLink);