diff --git a/src/getchar.c b/src/getchar.c
index 4a3587c..b0e72f5 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -232,7 +232,7 @@
 	    len = MINIMAL_SIZE;
 	else
 	    len = slen;
-	p = alloc(sizeof(buffblock_T) + len);
+	p = alloc(offsetof(buffblock_T, b_str) + len + 1);
 	if (p == NULL)
 	    return; /* no space, just forget it */
 	buf->bh_space = (int)(len - slen);
diff --git a/src/regexp.c b/src/regexp.c
index c95795d..dd99607 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -1319,7 +1319,7 @@
 	return NULL;
 
     /* Allocate space. */
-    r = alloc(sizeof(bt_regprog_T) + regsize);
+    r = alloc(offsetof(bt_regprog_T, program) + regsize);
     if (r == NULL)
 	return NULL;
     r->re_in_use = FALSE;
diff --git a/src/sign.c b/src/sign.c
index 2cec269..9a7ca21 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -85,7 +85,7 @@
     if (HASHITEM_EMPTY(hi))
     {
 	// new group
-	group = alloc(sizeof(signgroup_T) + STRLEN(groupname));
+	group = alloc(offsetof(signgroup_T, sg_name) + STRLEN(groupname) + 1);
 	if (group == NULL)
 	    return NULL;
 	STRCPY(group->sg_name, groupname);
diff --git a/src/structs.h b/src/structs.h
index c34bbeb..0aedbbd 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -742,9 +742,9 @@
 // Sign group
 typedef struct signgroup_S
 {
-    short_u	refcount;		// number of signs in this group
     int		next_sign_id;		// next sign id for this group
-    char_u	sg_name[1];		// sign group name
+    short_u	refcount;		// number of signs in this group
+    char_u	sg_name[1];		// sign group name, actually longer
 } signgroup_T;
 
 typedef struct signlist signlist_T;
diff --git a/src/syntax.c b/src/syntax.c
index ad2e1a0..3d06f44 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -4394,7 +4394,7 @@
 						 name_folded, MAXKEYWLEN + 1);
     else
 	name_ic = name;
-    kp = alloc(sizeof(keyentry_T) + STRLEN(name_ic));
+    kp = alloc(offsetof(keyentry_T, keyword) + STRLEN(name_ic) + 1);
     if (kp == NULL)
 	return;
     STRCPY(kp->keyword, name_ic);
diff --git a/src/textprop.c b/src/textprop.c
index f219b92..a976414 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -695,7 +695,7 @@
 	    semsg(_("E969: Property type %s already defined"), name);
 	    return;
 	}
-	prop = alloc_clear(sizeof(proptype_T) + STRLEN(name));
+	prop = alloc_clear(offsetof(proptype_T, pt_name) + STRLEN(name) + 1);
 	if (prop == NULL)
 	    return;
 	STRCPY(prop->pt_name, name);
diff --git a/src/userfunc.c b/src/userfunc.c
index a739a75..2bdc2b1 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -288,7 +288,7 @@
 
 	sprintf((char*)name, "<lambda>%d", ++lambda_no);
 
-	fp = alloc_clear(sizeof(ufunc_T) + STRLEN(name));
+	fp = alloc_clear(offsetof(ufunc_T, uf_name) + STRLEN(name) + 1);
 	if (fp == NULL)
 	    goto errret;
 	pt = ALLOC_CLEAR_ONE(partial_T);
@@ -2631,7 +2631,7 @@
 	    }
 	}
 
-	fp = alloc_clear(sizeof(ufunc_T) + STRLEN(name));
+	fp = alloc_clear(offsetof(ufunc_T, uf_name) + STRLEN(name) + 1);
 	if (fp == NULL)
 	    goto erret;
 
diff --git a/src/version.c b/src/version.c
index 93b8a2d..4f8f152 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1827,
+/**/
     1826,
 /**/
     1825,
