diff --git a/gajim/gajim.py b/gajim/gajim.py
index 6f1bbaa3eacf6a3181d5cdd491e3fadd8860bf80..3c61155eef8a4ae792a1f80a4fbef6950e25db51 100644
--- a/gajim/gajim.py
+++ b/gajim/gajim.py
@@ -239,13 +239,15 @@ class GajimApplication(Gtk.Application):
         for arg in file:
             uri = arg.get_uri()
             app.log('uri_handler').info('open %s', uri)
-            # remove xmpp:///
-            uri = uri[8:]
+            if not uri.startswith('xmpp:'):
+                continue
+            # remove xmpp:
+            uri = uri[5:]
             try:
                 jid, cmd = uri.split('?')
             except ValueError:
-                # Invalid URI
-                return
+                # No query argument
+                jid, cmd = uri, 'message'
             if cmd == 'join':
                 self.interface.join_gc_minimal(None, jid)
             elif cmd == 'roster':