diff --git a/deluge/ui/console/main.py b/deluge/ui/console/main.py
index 559d7ab47..e8ba227c8 100644
--- a/deluge/ui/console/main.py
+++ b/deluge/ui/console/main.py
@@ -159,10 +159,17 @@ def __init__(self, args=None):
 
         # Set the interactive flag to indicate where we should print the output
         self.interactive = True
+        connect_cmd = 'connect'
         if args:
             # Multiple commands split by ";"
             commands = [arg.strip() for arg in ' '.join(args).split(';')]
-            self.interactive = False
+            if len(commands) == 1 and commands[0].startswith(connect_cmd):
+                # If the only argument is connect, go interactive
+                self.interactive = True
+            else:
+                self.interactive = False
+            if commands[0].startswith(connect_cmd):
+                connect_cmd = commands.pop(0)
 
         # Try to connect to the daemon (localhost by default)
         def on_connect(result):
@@ -189,11 +196,8 @@ def on_connect_fail(result):
             if not self.interactive:
                 self.do_command('quit')
 
-        connect_cmd = 'connect'
         if not self.interactive:
-            if commands[0].startswith(connect_cmd):
-                connect_cmd = commands.pop(0)
-            elif 'help' in commands:
+            if 'help' in commands:
                 self.do_command('help')
                 return
         d = self.do_command(connect_cmd)
