diff --git a/lib/hci-socket/hci.js b/lib/hci-socket/hci.js
index <HASH>..<HASH> 100644
--- a/lib/hci-socket/hci.js
+++ b/lib/hci-socket/hci.js
@@ -70,8 +70,11 @@ var STATUS_MAPPER = require('./hci-status');
 var Hci = function() {
   this._socket = new BluetoothHciSocket();
   this._isDevUp = null;
+  this._state = null;
 
   this._handleBuffers = {};
+
+  this.on('stateChange', this.onStateChange.bind(this));
 };
 
 util.inherits(Hci, events.EventEmitter);
@@ -479,7 +482,7 @@ Hci.prototype.processCmdCompleteEvent = function(cmd, status, result) {
 
     if (hciVer < 0x06) {
       this.emit('stateChange', 'unsupported');
-    } else {
+    } else if (this._state !== 'poweredOn') {
       this.setAdvertiseEnable(false);
       this.setAdvertisingParameters();
     }
@@ -562,4 +565,8 @@ Hci.prototype.processLeConnUpdateComplete = function(status, data) {
   this.emit('leConnUpdateComplete', status, handle, interval, latency, supervisionTimeout);
 };
 
+Hci.prototype.onStateChange = function(state) {
+  this._state = state;
+};
+
 module.exports = Hci;
- don't reset advertising state on read local version response if state is powered on