diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 21ef15f..b5bf16d 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -133,9 +133,18 @@ parse_subscription_options(List *options, bool *connect, bool *enabled_given,
 			*slot_name_given = true;
 			*slot_name = defGetString(defel);
 
-			/* Setting slot_name = NONE is treated as no slot name. */
+			/*
+			 * Setting slot_name = NONE is treated as no slot name, so
+			 * create_slot and enabled are set to false as well if given.
+			 */
 			if (strcmp(*slot_name, "none") == 0)
+			{
 				*slot_name = NULL;
+				if (create_slot)
+					*create_slot = false;
+				if (enabled)
+					*enabled = false;
+			}
 		}
 		else if (strcmp(defel->defname, "copy_data") == 0 && copy_data)
 		{
