diff --git a/src/sign.c b/src/sign.c
index 1e36074..e0264cc 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -2349,11 +2349,8 @@
     if (name == NULL)
 	return;
 
-    if (argvars[1].v_type != VAR_UNKNOWN && argvars[1].v_type != VAR_DICT)
-    {
-	emsg(_(e_dictionary_required));
+    if (check_for_opt_dict_arg(argvars, 1) == FAIL)
 	return;
-    }
 
     rettv->vval.v_number = sign_define_from_dict(name,
 	    argvars[1].v_type == VAR_DICT ? argvars[1].vval.v_dict : NULL);
@@ -2411,12 +2408,9 @@
 
 	if (argvars[1].v_type != VAR_UNKNOWN)
 	{
-	    if (argvars[1].v_type != VAR_DICT ||
-				((dict = argvars[1].vval.v_dict) == NULL))
-	    {
-		emsg(_(e_dictionary_required));
+	    if (check_for_nonnull_dict_arg(argvars, 1) == FAIL)
 		return;
-	    }
+	    dict = argvars[1].vval.v_dict;
 	    if ((di = dict_find(dict, (char_u *)"lnum", -1)) != NULL)
 	    {
 		// get signs placed at this line
@@ -2640,12 +2634,11 @@
 		|| check_for_opt_dict_arg(argvars, 4) == FAIL))
 	return;
 
-    if (argvars[4].v_type != VAR_UNKNOWN
-	    && (argvars[4].v_type != VAR_DICT
-		|| ((dict = argvars[4].vval.v_dict) == NULL)))
+    if (argvars[4].v_type != VAR_UNKNOWN)
     {
-	emsg(_(e_dictionary_required));
-	return;
+	if (check_for_nonnull_dict_arg(argvars, 4) == FAIL)
+	    return;
+	dict = argvars[4].vval.v_dict;
     }
 
     rettv->vval.v_number = sign_place_from_dict(&argvars[0], &argvars[1],
@@ -2872,11 +2865,8 @@
 
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
-	if (argvars[1].v_type != VAR_DICT)
-	{
-	    emsg(_(e_dictionary_required));
+	if (check_for_dict_arg(argvars, 1) == FAIL)
 	    return;
-	}
 	dict = argvars[1].vval.v_dict;
     }
 
