diff --git a/Common/src/com/googlecode/android_scripting/facade/wifi/WifiManagerFacade.java b/Common/src/com/googlecode/android_scripting/facade/wifi/WifiManagerFacade.java
index 4c436fa..96947e7 100755
--- a/Common/src/com/googlecode/android_scripting/facade/wifi/WifiManagerFacade.java
+++ b/Common/src/com/googlecode/android_scripting/facade/wifi/WifiManagerFacade.java
@@ -78,6 +78,7 @@
     private final WifiScanReceiver mScanResultsAvailableReceiver;
     private final WifiStateChangeReceiver mStateChangeReceiver;
     private boolean mTrackingWifiStateChange;
+    private boolean mTrackingTetherStateChange;
 
     private final BroadcastReceiver mTetherStateReceiver = new BroadcastReceiver() {
         @Override
@@ -130,6 +131,7 @@
         mScanResultsAvailableReceiver = new WifiScanReceiver(mEventFacade);
         mStateChangeReceiver = new WifiStateChangeReceiver();
         mTrackingWifiStateChange = false;
+        mTrackingTetherStateChange = false;
     }
 
     private void makeLock(int wifiMode) {
@@ -835,19 +837,31 @@
     @Rpc(description = "Start listening for wifi state change related broadcasts.")
     public void wifiStartTrackingStateChange() {
         mService.registerReceiver(mStateChangeReceiver, mStateChangeFilter);
-        mService.registerReceiver(mTetherStateReceiver, mTetherFilter);
         mTrackingWifiStateChange = true;
     }
 
     @Rpc(description = "Stop listening for wifi state change related broadcasts.")
     public void wifiStopTrackingStateChange() {
         if (mTrackingWifiStateChange == true) {
-            mService.unregisterReceiver(mTetherStateReceiver);
             mService.unregisterReceiver(mStateChangeReceiver);
             mTrackingWifiStateChange = false;
         }
     }
 
+    @Rpc(description = "Start listening for tether state change related broadcasts.")
+    public void wifiStartTrackingTetherStateChange() {
+        mService.registerReceiver(mTetherStateReceiver, mTetherFilter);
+        mTrackingTetherStateChange = true;
+    }
+
+    @Rpc(description = "Stop listening for wifi state change related broadcasts.")
+    public void wifiStopTrackingTetherStateChange() {
+        if (mTrackingTetherStateChange == true) {
+            mService.unregisterReceiver(mTetherStateReceiver);
+            mTrackingTetherStateChange = false;
+        }
+    }
+
     @Rpc(description = "Toggle Wifi on and off.", returns = "True if Wifi is enabled.")
     public Boolean wifiToggleState(@RpcParameter(name = "enabled") @RpcOptional Boolean enabled) {
         if (enabled == null) {
@@ -888,5 +902,8 @@
         if (mTrackingWifiStateChange == true) {
             wifiStopTrackingStateChange();
         }
+        if (mTrackingTetherStateChange == true) {
+            wifiStopTrackingTetherStateChange();
+        }
     }
 }
