-if [ "$DBUS_SESSION_BUS_ADDRESS" ] &&
- dbus-send --session --print-reply --dest=org.freedesktop.DBus \
- / org.freedesktop.DBus.GetNameOwner string:org.gnome.keyring \
- >/dev/null 2>/dev/null &&
- stuff=$(gnome-keyring-daemon -s 2>/dev/null)
+if { { [ "$GNOME_KEYRING_CONTROL" ] &&
+ [ -s "$GNOME_KEYRING_CONTROL" ]; } ||
+ { [ "$DBUS_SESSION_BUS_ADDRESS" ] &&
+ dbus-send --session --print-reply --dest=org.freedesktop.DBus \
+ / org.freedesktop.DBus.GetNameOwner string:org.gnome.keyring \
+ >/dev/null 2>/dev/null; }; } &&
+ stuff=$(gnome-keyring-daemon -s -c ssh 2>/dev/null)