diff --git a/src/lib-managesieve/Makefile.am b/src/lib-managesieve/Makefile.am
index b03668083b16055f1eca7e7313f0df69fe5b792f..079df4359891034d092dc4ccdcff5e3470155d51 100644
--- a/src/lib-managesieve/Makefile.am
+++ b/src/lib-managesieve/Makefile.am
@@ -10,6 +10,7 @@ libmanagesieve_la_SOURCES = \
 	managesieve-parser.c
 
 noinst_HEADERS = \
+	managesieve-protocol.h \
 	managesieve-arg.h \
 	managesieve-quote.h \
 	managesieve-parser.h
diff --git a/src/lib-managesieve/managesieve-protocol.h b/src/lib-managesieve/managesieve-protocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..4b00c113a2974305317ad4d463094857c6f2526e
--- /dev/null
+++ b/src/lib-managesieve/managesieve-protocol.h
@@ -0,0 +1,6 @@
+#ifndef MANAGESIEVE_PROTOCOL_H
+#define MANAGESIEVE_PROTOCOL_H
+
+#define MANAGESIEVE_DEFAULT_PORT 4190
+
+#endif
diff --git a/src/managesieve-login/client-authenticate.c b/src/managesieve-login/client-authenticate.c
index 57eeca3cd267fd26f0072e8f0ad03318d480d386..0e9111fddb65a55bfd6edd880bcd8e1292e7e2c1 100644
--- a/src/managesieve-login/client-authenticate.c
+++ b/src/managesieve-login/client-authenticate.c
@@ -13,6 +13,7 @@
 #include "auth-client.h"
 
 #include "managesieve-parser.h"
+#include "managesieve-protocol.h"
 #include "managesieve-quote.h"
 #include "client.h"
 
@@ -65,7 +66,7 @@ void managesieve_client_auth_result(struct client *client,
 		str_printfa(referral, "REFERRAL sieve://%s;AUTH=%s@%s",
 			    reply->proxy.username, client->auth_mech_name,
 			    reply->proxy.host);
-		if (reply->proxy.port != 4190)
+		if (reply->proxy.port != MANAGESIEVE_DEFAULT_PORT)
 			str_printfa(referral, ":%u", reply->proxy.port);
 
 		if (result == CLIENT_AUTH_RESULT_REFERRAL_SUCCESS)
diff --git a/src/managesieve-login/client.c b/src/managesieve-login/client.c
index fe8acfffb68bc9546d56884fcb30e49a564ccdeb..d4a08d4147d305794e9a03944ccb37373230d2d3 100644
--- a/src/managesieve-login/client.c
+++ b/src/managesieve-login/client.c
@@ -15,6 +15,7 @@
 #include "auth-client.h"
 
 #include "managesieve-parser.h"
+#include "managesieve-protocol.h"
 #include "managesieve-quote.h"
 
 #include "client.h"
@@ -554,7 +555,7 @@ static struct client_vfuncs managesieve_client_vfuncs = {
 static struct login_binary managesieve_login_binary = {
 	.protocol = "sieve",
 	.process_name = "managesieve-login",
-	.default_port = 4190,
+	.default_port = MANAGESIEVE_DEFAULT_PORT,
 
 	.event_category = {
 		.name = "managesieve",
diff --git a/src/managesieve-login/managesieve-login-settings.c b/src/managesieve-login/managesieve-login-settings.c
index 45ddc2ea996f1d57d5c20ff28a0deb6a7f95a17d..b2fc274487a468457bdf8521401277d3b077b820 100644
--- a/src/managesieve-login/managesieve-login-settings.c
+++ b/src/managesieve-login/managesieve-login-settings.c
@@ -11,6 +11,7 @@
 #include "login-settings.h"
 
 #include "pigeonhole-config.h"
+#include "managesieve-protocol.h"
 
 #include "managesieve-login-settings.h"
 
@@ -22,7 +23,7 @@
 /* <settings checks> */
 
 static struct inet_listener_settings managesieve_login_inet_listeners_array[] = {
-    { .name = "sieve", .address = "", .port = 4190 },
+    { .name = "sieve", .address = "", .port = MANAGESIEVE_DEFAULT_PORT },
 };
 static struct inet_listener_settings *managesieve_login_inet_listeners[] = {
 	&managesieve_login_inet_listeners_array[0]