diff --git a/src/errors.h b/src/errors.h
index e035f07..96aef67 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -694,5 +694,3 @@
 	INIT(= N_("E1247: Line number out of range"));
 EXTERN char e_closure_called_from_invalid_context[]
 	INIT(= N_("E1248: Closure called from invalid context"));
-EXTERN char e_group_name_missing_for_str[]
-	INIT(= N_("E1249: Group name missing for %s"));
diff --git a/src/sign.c b/src/sign.c
index 2c102e4..e358ee9 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1310,17 +1310,6 @@
     return lnum;
 }
 
-    static int
-check_empty_group(size_t len, char *name)
-{
-    if (len == 0)
-    {
-	semsg(_(e_group_name_missing_for_str), name);
-	return FAIL;
-    }
-    return OK;
-}
-
 /*
  * ":sign define {name} ..." command
  */
@@ -1335,10 +1324,6 @@
     char_u	*texthl = NULL;
     char_u	*culhl = NULL;
     int		failed = FALSE;
-    sign_T	*sp_prev;
-    int		exists;
-
-    exists = sign_find(sign_name, &sp_prev) != NULL;
 
     // set values for a defined sign.
     for (;;)
@@ -1360,31 +1345,16 @@
 	else if (STRNCMP(arg, "linehl=", 7) == 0)
 	{
 	    arg += 7;
-	    if (!exists && check_empty_group(p - arg, "linehl") == FAIL)
-	    {
-		failed = TRUE;
-		break;
-	    }
 	    linehl = vim_strnsave(arg, p - arg);
 	}
 	else if (STRNCMP(arg, "texthl=", 7) == 0)
 	{
 	    arg += 7;
-	    if (!exists && check_empty_group(p - arg, "texthl") == FAIL)
-	    {
-		failed = TRUE;
-		break;
-	    }
 	    texthl = vim_strnsave(arg, p - arg);
 	}
 	else if (STRNCMP(arg, "culhl=", 6) == 0)
 	{
 	    arg += 6;
-	    if (!exists && check_empty_group(p - arg, "culhl") == FAIL)
-	    {
-		failed = TRUE;
-		break;
-	    }
 	    culhl = vim_strnsave(arg, p - arg);
 	}
 	else
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index 8511708..a1ffdf5 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -126,11 +126,6 @@
   call assert_fails("sign define Sign4 text= linehl=Comment", 'E239:')
   call assert_fails("sign define Sign4 text=\\ ab  linehl=Comment", 'E239:')
 
-  " an empty highlight argument for a new sign is an error
-  call assert_fails("sign define SignX linehl=", 'E1249: Group name missing for linehl')
-  call assert_fails("sign define SignX culhl=", 'E1249: Group name missing for culhl')
-  call assert_fails("sign define SignX texthl=", 'E1249: Group name missing for texthl')
-
   " an empty highlight argument for an existing sign clears it
   sign define SignY texthl=TextHl culhl=CulHl linehl=LineHl
   let sl = sign_getdefined('SignY')[0]
diff --git a/src/version.c b/src/version.c
index e7b0b2e..17dfe98 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3748,
+/**/
     3747,
 /**/
     3746,
