diff --git a/src/components/panels/EditorDialog.jsx b/src/components/panels/EditorDialog.jsx
index a230e5f..fa87e9e 100644
--- a/src/components/panels/EditorDialog.jsx
+++ b/src/components/panels/EditorDialog.jsx
@@ -8,7 +8,7 @@ import { LogoDialog } from '$components/logo/LogoDialog';
 import { SaveDialog } from '$components/save/SaveDialog';
 
 export const EditorDialog = ({
-  mode, routerPoints, editor, activeSticker, logo, user,
+  mode, routerPoints, editor, activeSticker, logo, user, title, address,
 }) => {
   const showDialog = (
     mode === MODES.ROUTER
@@ -25,7 +25,7 @@ export const EditorDialog = ({
         { mode === MODES.STICKERS && <StickersDialog editor={editor} /> }
         { mode === MODES.TRASH && <TrashDialog editor={editor} /> }
         { mode === MODES.LOGO && <LogoDialog editor={editor} logo={logo} /> }
-        { mode === MODES.SAVE && <SaveDialog editor={editor} user={user} /> }
+        { mode === MODES.SAVE && <SaveDialog editor={editor} user={user} title={title} address={address} /> }
       </div>
   );
 };
diff --git a/src/components/panels/EditorPanel.jsx b/src/components/panels/EditorPanel.jsx
index 7ee1002..c1651de 100644
--- a/src/components/panels/EditorPanel.jsx
+++ b/src/components/panels/EditorPanel.jsx
@@ -29,7 +29,7 @@ export class EditorPanel extends React.PureComponent {
 
   render() {
     const {
-      mode, routerPoints, editor, totalDistance, estimateTime, activeSticker, logo, user, editing,
+      mode, routerPoints, editor, totalDistance, estimateTime, activeSticker, logo, user, editing, title, address,
     } = this.props;
 
     return (
@@ -42,6 +42,8 @@ export class EditorPanel extends React.PureComponent {
           editor={editor}
           logo={logo}
           user={user}
+          title={title}
+          address={address}
         />
 
         <LogoPreview logo={logo} />
diff --git a/src/components/save/SaveDialog.jsx b/src/components/save/SaveDialog.jsx
index 3975870..894ec58 100644
--- a/src/components/save/SaveDialog.jsx
+++ b/src/components/save/SaveDialog.jsx
@@ -8,14 +8,18 @@ import { postMap } from '$utils/api';
 import classnames from 'classnames';
 
 export class SaveDialog extends React.Component {
-  state = {
-    address: '',
-    title: '',
-    error: '',
-    sending: false,
-    finished: false,
-    overwriting: false,
-  };
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      address: props.address || '',
+      title: props.title || '',
+      error: '',
+      sending: false,
+      finished: false,
+      overwriting: false,
+    };
+  }
 
   getAddress = () => {
     const { path } = getUrlData();
diff --git a/src/constants/auth.js b/src/constants/auth.js
index 81054ca..913d249 100644
--- a/src/constants/auth.js
+++ b/src/constants/auth.js
@@ -10,6 +10,8 @@ export const DEFAULT_USER = {
   role: ROLES.guest,
   routes: [],
   success: false,
+  id: null,
+  token: null,
   userdata: {
     name: '',
     agent: '',
diff --git a/src/containers/App.jsx b/src/containers/App.jsx
index 57e72fa..3848f8e 100644
--- a/src/containers/App.jsx
+++ b/src/containers/App.jsx
@@ -23,6 +23,8 @@ export class App extends React.Component {
     user: {
       ...DEFAULT_USER,
     },
+    title: '',
+    address: '',
   };
 
   componentDidMount() {
@@ -50,7 +52,6 @@ export class App extends React.Component {
   };
 
   startEmptyEditor = () => {
-    console.log('starting empty');
     const { user } = this.state;
     if (!user || !user.random_url || !user.id) return;
 
@@ -62,6 +63,9 @@ export class App extends React.Component {
     this.hideLoader();
   };
 
+  setTitle = title => this.setState({ title });
+  setAddress = address => this.setState({ address });
+
   setDataOnLoad = data => {
     this.editor.setData(data);
     this.hideLoader();
@@ -99,6 +103,8 @@ export class App extends React.Component {
     this.setState({ editing });
   };
 
+  getUser = () => this.state.user;
+
   editor = new Editor({
     container: 'map',
     mode: this.state.mode,
@@ -108,6 +114,9 @@ export class App extends React.Component {
     setActiveSticker: this.setActiveSticker,
     setLogo: this.setLogo,
     setEditing: this.setEditing,
+    setTitle: this.setTitle,
+    setAddress: this.setAddress,
+    getUser: this.getUser,
   });
 
   authInit = () => {
@@ -132,6 +141,10 @@ export class App extends React.Component {
   setUser = user => {
     if (!user.token || !user.id) return;
 
+    if (this.state.user.id === this.editor.owner) {
+      this.editor.owner = user.id;
+    }
+
     this.setState({
       user: {
         ...DEFAULT_USER,
@@ -149,6 +162,10 @@ export class App extends React.Component {
   getUserData = () => getData('user') || null;
 
   userLogout = () => {
+    if (this.state.user.id === this.editor.owner) {
+      this.editor.owner = null;
+    }
+
     this.setState({
       user: {
         ...DEFAULT_USER,
@@ -162,7 +179,7 @@ export class App extends React.Component {
     const {
       editor,
       state: {
-        mode, routerPoints, totalDistance, estimateTime, activeSticker, logo, user, editing,
+        mode, routerPoints, totalDistance, estimateTime, activeSticker, logo, user, editing, title, address
       },
     } = this;
 
@@ -190,6 +207,8 @@ export class App extends React.Component {
           logo={logo}
           user={user}
           editing={editing}
+          title={title}
+          address={address}
         />
       </div>
     );
diff --git a/src/modules/Editor.js b/src/modules/Editor.js
index ff69d70..f6f5159 100644
--- a/src/modules/Editor.js
+++ b/src/modules/Editor.js
@@ -19,6 +19,9 @@ export class Editor {
     setActiveSticker,
     setLogo,
     setEditing,
+    setTitle,
+    setAddress,
+    getUser,
   }) {
     this.logo = DEFAULT_LOGO;
     this.owner = null;
@@ -66,6 +69,9 @@ export class Editor {
     this.setLogo = setLogo;
     this.setMode = setMode;
     this.setEditing = setEditing;
+    this.setTitle = setTitle;
+    this.setAddress = setAddress;
+    this.getUser = getUser;
     this.mode = mode;
 
     map.addEventListener('mouseup', this.onClick);
@@ -171,8 +177,12 @@ export class Editor {
     this.changeMode(MODES.NONE);
   };
 
-  setData = ({ route, stickers, version = 1, owner }) => {
-    console.log('setting?', stickers);
+  setData = ({ route, stickers, version = 1, owner, title, address }) => {
+    this.setTitle(title || '');
+    this.setAddress(address || '');
+
+    console.log('setting address', address);
+
     if (route) {
       this.poly.setPoints(route);
     }
@@ -198,7 +208,14 @@ export class Editor {
 
   startEditing = () => {
     const { path } = getUrlData();
-    pushPath(`/${path}/edit`);
+    const { random_url, id } = this.getUser();
+
+    // console.log('ID', id, this.owner);
+
+    const url = (this.owner && this.owner === id) ? path : random_url;
+
+    this.setAddress(url);
+    pushPath(`/${url}/edit`);
 
     if (this.poly.latlngs && this.poly.latlngs.length > 1) this.poly.poly.enableEdit();
 
diff --git a/src/utils/api.js b/src/utils/api.js
index b9e21e7..a00036a 100644
--- a/src/utils/api.js
+++ b/src/utils/api.js
@@ -31,7 +31,11 @@ export const getStoredMap = ({ name }) => axios.get(API.GET_MAP, {
     name,
     action: 'load'
   }
-}).then(result => (result && result.data && result.data.data && { ...result.data.data, owner: (result.data.owner || null) }));
+}).then(result => (result && result.data && result.data.data && {
+  ...result.data.data,
+  owner: (result.data.owner || null),
+  address: (result.data.name || name),
+}));
 
 export const postMap = ({
   title, address, route, stickers, id, token, force,