diff --git a/src/optiondefs.h b/src/optiondefs.h
index cb4376c..5d9f388 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -2537,7 +2537,8 @@
     {"tabpanel",  "tpl",    P_STRING|P_VI_DEF|P_RALL,
 			    (char_u *)&p_tpl, PV_NONE, NULL, NULL,
 			    {(char_u *)"", (char_u *)0L} SCTX_INIT},
-    {"tabpanelopt","tplo",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+    {"tabpanelopt","tplo",  P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_COLON
+								    |P_NODUP,
 			    (char_u *)&p_tplo, PV_NONE, did_set_tabpanelopt,
 			    expand_set_tabpanelopt,
 			    {(char_u *)"", (char_u *)0L}
diff --git a/src/optionstr.c b/src/optionstr.c
index 553b55f..b286767 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -29,7 +29,9 @@
 static char *(p_briopt_values[]) = {"shift:", "min:", "sbr", "list:", "column:", NULL};
 #endif
 #if defined(FEAT_TABPANEL)
-static char *(p_tpl_values[]) = {"wrap", "align:", "columns:", "vert:", NULL};
+// Note: Keep this in sync with tabpanelopt_changed()
+static char *(p_tplo_values[]) = {"align:", "columns:", "vert", NULL};
+static char *(p_tplo_align_values[]) = {"left", "right", NULL};
 #endif
 #if defined(FEAT_DIFF)
 // Note: Keep this in sync with diffopt_changed()
@@ -3567,10 +3569,29 @@
     int
 expand_set_tabpanelopt(optexpand_T *args, int *numMatches, char_u ***matches)
 {
+    expand_T *xp = args->oe_xp;
+
+    if (xp->xp_pattern > args->oe_set_arg && *(xp->xp_pattern-1) == ':')
+    {
+	// Within "align:", we have a subgroup of possible options.
+	int align_len = (int)STRLEN("align:");
+	if (xp->xp_pattern - args->oe_set_arg >= align_len &&
+		STRNCMP(xp->xp_pattern - align_len, "align:", align_len) == 0)
+	{
+	    return expand_set_opt_string(
+		    args,
+		    p_tplo_align_values,
+		    ARRAY_LENGTH(p_tplo_align_values) - 1,
+		    numMatches,
+		    matches);
+	}
+	return FAIL;
+    }
+
     return expand_set_opt_string(
 	    args,
-	    p_tpl_values,
-	    ARRAY_LENGTH(p_tpl_values) - 1,
+	    p_tplo_values,
+	    ARRAY_LENGTH(p_tplo_values) - 1,
 	    numMatches,
 	    matches);
 }
diff --git a/src/tabpanel.c b/src/tabpanel.c
index fb5a957..81e2c0c 100644
--- a/src/tabpanel.c
+++ b/src/tabpanel.c
@@ -64,15 +64,21 @@
     p = p_tplo;
     while (*p != NUL)
     {
-	if (STRNCMP(p, "align:left", 10) == 0)
+	if (STRNCMP(p, "align:", 6) == 0)
 	{
-	    p += 10;
-	    new_align = ALIGN_LEFT;
-	}
-	else if (STRNCMP(p, "align:right", 11) == 0)
-	{
-	    p += 11;
-	    new_align = ALIGN_RIGHT;
+	    p += 6;
+	    if (STRNCMP(p, "left", 4) == 0)
+	    {
+		p += 4;
+		new_align = ALIGN_LEFT;
+	    }
+	    else if (STRNCMP(p, "right", 5) == 0)
+	    {
+		p += 5;
+		new_align = ALIGN_RIGHT;
+	    }
+	    else
+		return FAIL;
 	}
 	else if (STRNCMP(p, "columns:", 8) == 0 && VIM_ISDIGIT(p[8]))
 	{
diff --git a/src/version.c b/src/version.c
index 1f5cd02..f94dbe3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1403,
+/**/
     1402,
 /**/
     1401,
