diff --git a/set_location/manifest.ini b/set_location/manifest.ini
index 76377d1504b0825a29f898b82af03ad0e911f189..20f9ab34189bc8d4365d53c88bf44a720f261957 100644
--- a/set_location/manifest.ini
+++ b/set_location/manifest.ini
@@ -1,9 +1,8 @@
 [info]
 name: Set Location
 short_name: set_location
-version: 0.6
+version: 0.7
 description: Set information about the current geographical or physical location.
  To be able to specify a location on the built-in card, you must install python-osmgpsmap > 0.5
 authors: Denis Fomin <fominde@gmail.com>
 homepage: http://trac-plugins.gajim.org/wiki/SetLocalitionPlugin
-
diff --git a/set_location/set_location.py b/set_location/set_location.py
index bbb91cd8c75a2a985c0ee57c35993b55abf7d325..1111cb92f34f5921f40d4854af7d8e00db8d72d8 100644
--- a/set_location/set_location.py
+++ b/set_location/set_location.py
@@ -10,6 +10,7 @@ from plugins.gui import GajimPluginConfigDialog
 from plugins import GajimPlugin
 from plugins.helpers import log, log_calls
 from common import gajim
+from common import ged
 import gtkgui_helpers
 from dialogs import InputDialog, WarningDialog
 
@@ -43,6 +44,22 @@ class SetLocationPlugin(GajimPlugin):
 
     @log_calls('SetLocationPlugin')
     def activate(self):
+        gajim.ged.register_event_handler('signed-in', ged.POSTGUI,
+            self.on_signed_in)
+        self.send_locations()
+
+    @log_calls('SetLocationPlugin')
+    def deactivate(self):
+        self._data = {}
+        for acct in gajim.connections:
+            gajim.connections[acct].send_location(self._data)
+        gajim.ged.remove_event_handler('signed-in', ged.POSTGUI,
+            self.on_signed_in)
+
+    def on_signed_in(self, network_event):
+        self.send_locations(network_event.conn.name)
+
+    def send_locations(self, acct=False):
         self._data = {}
         timestamp = time.time()
         timestamp = datetime.utcfromtimestamp(timestamp)
@@ -50,16 +67,13 @@ class SetLocationPlugin(GajimPlugin):
         self._data['timestamp'] = timestamp
         for name in self.config_default_values:
             self._data[name] = self.config[name]
-        for acct in gajim.connections:
-            if gajim.connections[acct].connected == 0:
-                gajim.connections[acct].to_be_sent_location = self._data
-            else:
-                gajim.connections[acct].send_location(self._data)
 
-    @log_calls('SetLocationPlugin')
-    def deactivate(self):
-        self._data = {}
-        for acct in gajim.connections:
+        if not acct:
+            #set geo for all accounts
+            for acct in gajim.connections:
+                if gajim.config.get_per('accounts', acct, 'publish_location'):
+                    gajim.connections[acct].send_location(self._data)
+        elif gajim.config.get_per('accounts', acct, 'publish_location'):
             gajim.connections[acct].send_location(self._data)