diff --git a/src/traces/candlestick/transform.js b/src/traces/candlestick/transform.js
index 3d290a46ca2..ce0aaeb03ad 100644
--- a/src/traces/candlestick/transform.js
+++ b/src/traces/candlestick/transform.js
@@ -42,7 +42,7 @@ exports.transform = function transform(dataIn, state) {
         );
     }
 
-    helpers.addRangeSlider(state.layout);
+    helpers.addRangeSlider(dataOut, state.layout);
 
     return dataOut;
 };
diff --git a/src/traces/ohlc/helpers.js b/src/traces/ohlc/helpers.js
index e5eccf20a1a..e7fca7d0d60 100644
--- a/src/traces/ohlc/helpers.js
+++ b/src/traces/ohlc/helpers.js
@@ -104,7 +104,18 @@ exports.getFilterFn = function(direction) {
     }
 };
 
-exports.addRangeSlider = function(layout) {
-    if(!layout.xaxis) layout.xaxis = {};
-    if(!layout.xaxis.rangeslider) layout.xaxis.rangeslider = {};
+exports.addRangeSlider = function(data, layout) {
+    var hasOneVisibleTrace = false;
+
+    for(var i = 0; i < data.length; i++) {
+        if(data[i].visible === true) {
+            hasOneVisibleTrace = true;
+            break;
+        }
+    }
+
+    if(hasOneVisibleTrace) {
+        if(!layout.xaxis) layout.xaxis = {};
+        if(!layout.xaxis.rangeslider) layout.xaxis.rangeslider = {};
+    }
 };
diff --git a/src/traces/ohlc/transform.js b/src/traces/ohlc/transform.js
index 47c2b5b6219..236536056ac 100644
--- a/src/traces/ohlc/transform.js
+++ b/src/traces/ohlc/transform.js
@@ -44,7 +44,7 @@ exports.transform = function transform(dataIn, state) {
         );
     }
 
-    helpers.addRangeSlider(state.layout);
+    helpers.addRangeSlider(dataOut, state.layout);
 
     return dataOut;
 };
diff --git a/test/jasmine/tests/finance_test.js b/test/jasmine/tests/finance_test.js
index f6e292cf4dc..89515ff3138 100644
--- a/test/jasmine/tests/finance_test.js
+++ b/test/jasmine/tests/finance_test.js
@@ -962,4 +962,44 @@ describe('finance charts updates:', function() {
             done();
         });
     });
+
+    it('Plotly.plot with data-less trace and adding with Plotly.restyle', function(done) {
+        var data = [
+            { type: 'candlestick' },
+            { type: 'ohlc' },
+            { type: 'bar', y: [2, 1, 2] }
+        ];
+
+        Plotly.plot(gd, data).then(function() {
+            expect(countScatterTraces()).toEqual(0);
+            expect(countBoxTraces()).toEqual(0);
+            expect(countRangeSliders()).toEqual(0);
+
+            return Plotly.restyle(gd, {
+                open: [mock0.open],
+                high: [mock0.high],
+                low: [mock0.low],
+                close: [mock0.close]
+            }, [0]);
+        })
+        .then(function() {
+            expect(countScatterTraces()).toEqual(0);
+            expect(countBoxTraces()).toEqual(2);
+            expect(countRangeSliders()).toEqual(1);
+
+            return Plotly.restyle(gd, {
+                open: [mock0.open],
+                high: [mock0.high],
+                low: [mock0.low],
+                close: [mock0.close]
+            }, [1]);
+        })
+        .then(function() {
+            expect(countScatterTraces()).toEqual(2);
+            expect(countBoxTraces()).toEqual(2);
+            expect(countRangeSliders()).toEqual(1);
+        })
+        .then(done);
+    });
+
 });