diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index 494b44004d2399a462959928cedb97b2ff7fbf18..0dc859651239a2bab3276d232276359ad3236725 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -4457,7 +4457,10 @@ int canvas_trymulticonnect(t_canvas *x, int xpos, int ypos, int which, int doit)
                 
                 // now decide which one is better
                 // (we give preference to option A if both are equal)
-                if (successA >= successB)
+                // AG: Also take into account the ctrl mod status, so
+                // that the user can reverse our default choice (otherwise
+                // we usually just end up preferring outgoing connections)
+                if (glob_ctrl ? successA < successB : successA >= successB)
                 {
                     // OPTION A (see description above)
                     for (sel = x->gl_editor->e_selection; sel; sel = sel->sel_next)