diff --git a/frontend/src/metabase/dashboard/components/DashboardGrid.jsx b/frontend/src/metabase/dashboard/components/DashboardGrid.jsx
index d219d5b65c15621541fc9405f4f9217624c591f2..f80c947a1f0a640c1fb57e163db4360f22eafaf0 100644
--- a/frontend/src/metabase/dashboard/components/DashboardGrid.jsx
+++ b/frontend/src/metabase/dashboard/components/DashboardGrid.jsx
@@ -190,10 +190,10 @@ export default class DashboardGrid extends Component {
         this.setState({ addSeriesModalDashCard: dc });
     }
 
-    onUpdateVisualizationSetting(dc, setting, value) {
+    onUpdateVisualizationSetting(dc, key, value) {
         this.props.setDashCardVisualizationSetting({
             id: dc.id,
-            setting: setting,
+            key: key,
             value: value
         });
     }
diff --git a/frontend/src/metabase/dashboard/dashboard.js b/frontend/src/metabase/dashboard/dashboard.js
index 9ead04cd94b1261103381693f31e2ab35d9c5a5d..58045582f1fe0a9b713f7c7c18deed713804e193 100644
--- a/frontend/src/metabase/dashboard/dashboard.js
+++ b/frontend/src/metabase/dashboard/dashboard.js
@@ -332,9 +332,9 @@ const dashcards = handleActions({
         })
     },
     [SET_DASHCARD_VISUALIZATION_SETTING]: {
-        next: (state, { payload: { id, setting, value } }) =>
+        next: (state, { payload: { id, key, value } }) =>
             i.chain(state)
-                .assocIn([id, "card", "visualization_settings"].concat(setting), value)
+                .assocIn([id, "card", "visualization_settings", key], value)
                 .assocIn([id, "card", "isDirty"], true)
                 .value()
     },
diff --git a/frontend/src/metabase/query_builder/actions.js b/frontend/src/metabase/query_builder/actions.js
index abdd2ca351f2d921fc0cbf80678404eeafb433c5..2fb6568904d6c2708ebb52d49fdfc1500947acb4 100644
--- a/frontend/src/metabase/query_builder/actions.js
+++ b/frontend/src/metabase/query_builder/actions.js
@@ -273,10 +273,10 @@ export const setCardVisualization = createThunkAction(SET_CARD_VISUALIZATION, (d
 });
 
 export const SET_CARD_VISUALIZATION_SETTING = "SET_CARD_VISUALIZATION_SETTING";
-export const setCardVisualizationSetting = createThunkAction(SET_CARD_VISUALIZATION_SETTING, (path, value) => {
+export const setCardVisualizationSetting = createThunkAction(SET_CARD_VISUALIZATION_SETTING, (key, value) => {
     return (dispatch, getState) => {
         const { qb: { card, uiControls, updateUrl } } = getState();
-        let updatedCard = updateVisualizationSettings(card, uiControls.isEditing, card.display, i.assocIn(card.visualization_settings, path, value));
+        let updatedCard = updateVisualizationSettings(card, uiControls.isEditing, card.display, i.assoc(card.visualization_settings, key, value));
         updateUrl(updatedCard, true);
         return updatedCard;
     };
diff --git a/frontend/src/metabase/visualizations/PinMap.jsx b/frontend/src/metabase/visualizations/PinMap.jsx
index ddb7460caddf9f6c191ada78a73c8fe1a8d882cc..0d3acc9200f0a979b19a606c4020d18969563185 100644
--- a/frontend/src/metabase/visualizations/PinMap.jsx
+++ b/frontend/src/metabase/visualizations/PinMap.jsx
@@ -35,13 +35,13 @@ export default class PinMap extends Component {
 
     updateSettings() {
         if (this.state.lat != null) {
-            this.props.onUpdateVisualizationSetting(["map", "center_latitude"], this.state.lat);
+            this.props.onUpdateVisualizationSetting("map.center_latitude", this.state.lat);
         }
         if (this.state.lon != null) {
-            this.props.onUpdateVisualizationSetting(["map", "center_longitude"], this.state.lon);
+            this.props.onUpdateVisualizationSetting("map.center_longitude", this.state.lon);
         }
         if (this.state.zoom != null) {
-            this.props.onUpdateVisualizationSetting(["map", "zoom"], this.state.zoom);
+            this.props.onUpdateVisualizationSetting("map.zoom", this.state.zoom);
         }
         this.setState({ lat: null, lon: null, zoom: null });
     }
diff --git a/frontend/src/metabase/visualizations/components/ChartSettings.jsx b/frontend/src/metabase/visualizations/components/ChartSettings.jsx
index e2a48cec5c475ae65b1b564d083fb90df1d84589..942e434919bc8b9f67cee640369a7ef7344b348b 100644
--- a/frontend/src/metabase/visualizations/components/ChartSettings.jsx
+++ b/frontend/src/metabase/visualizations/components/ChartSettings.jsx
@@ -48,9 +48,9 @@ class ChartSettings extends Component {
         this.setState({ currentTab: tab });
     }
 
-    onUpdateVisualizationSetting = (path, value) => {
+    onUpdateVisualizationSetting = (key, value) => {
         this.onChangeSettings({
-            [path.join(".")]: value
+            [key]: value
         });
     }