diff --git a/changes/bug4019 b/changes/bug4019
new file mode 100644
index 0000000000..fef736ff66
--- /dev/null
+++ b/changes/bug4019
@@ -0,0 +1,4 @@
+ o Minor bugfixes (logging):
+ - Remove duplicate log messages regarding opening non-local SocksPorts
+ upon parsing config and opening listeners at startup. Fixes bug 4019;
+ bugfix on tor-0.2.3.3-alpha.
diff --git a/src/or/config.c b/src/or/config.c
index e17ae86e9c..5b5bb9049b 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -6258,8 +6258,9 @@ port_cfg_free(port_cfg_t *port)
/** Warn for every port in ports of type listener_type that is
* on a publicly routable address. */
static void
-warn_nonlocal_client_ports(const smartlist_t *ports, const char *portname,
- int listener_type)
+warn_nonlocal_client_ports(const smartlist_t *ports,
+ const char *portname,
+ const int listener_type)
{
SMARTLIST_FOREACH_BEGIN(ports, const port_cfg_t *, port) {
if (port->type != listener_type)
@@ -6943,7 +6944,8 @@ parse_ports(or_options_t *options, int validate_only,
options->SocksPort_lines,
"Socks", CONN_TYPE_AP_LISTENER,
"127.0.0.1", 9050,
- CL_PORT_WARN_NONLOCAL|CL_PORT_TAKES_HOSTNAMES|gw_flag) < 0) {
+ ((validate_only ? 0 : CL_PORT_WARN_NONLOCAL)
+ | CL_PORT_TAKES_HOSTNAMES | gw_flag)) < 0) {
*msg = tor_strdup("Invalid SocksPort configuration");
goto err;
}