diff --git a/src/eval.c b/src/eval.c
index 89407b2..dd19492 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3738,25 +3738,30 @@
     ht = find_var_ht(name, &varname);
     if (ht != NULL && *varname != NUL)
     {
+	if (ht == &globvarht)
+	    d = &globvardict;
+	else if (current_funccal != NULL
+			     && ht == &current_funccal->l_vars.dv_hashtab)
+	    d = &current_funccal->l_vars;
+	else if (ht == &compat_hashtab)
+	    d = &vimvardict;
+	else
+	{
+	    di = find_var_in_ht(ht, *name, (char_u *)"", FALSE);
+	    d = di == NULL ? NULL : di->di_tv.vval.v_dict;
+	}
+	if (d == NULL)
+	{
+	    EMSG2(_(e_intern2), "do_unlet()");
+	    return FAIL;
+	}
 	hi = hash_find(ht, varname);
 	if (!HASHITEM_EMPTY(hi))
 	{
 	    di = HI2DI(hi);
 	    if (var_check_fixed(di->di_flags, name, FALSE)
-		    || var_check_ro(di->di_flags, name, FALSE))
-		return FAIL;
-
-	    if (ht == &globvarht)
-		d = &globvardict;
-	    else if (current_funccal != NULL
-				 && ht == &current_funccal->l_vars.dv_hashtab)
-		d = &current_funccal->l_vars;
-	    else
-	    {
-		di = find_var_in_ht(ht, *name, (char_u *)"", FALSE);
-		d = di->di_tv.vval.v_dict;
-	    }
-	    if (d == NULL || tv_check_lock(d->dv_lock, name, FALSE))
+		    || var_check_ro(di->di_flags, name, FALSE)
+		    || tv_check_lock(d->dv_lock, name, FALSE))
 		return FAIL;
 
 	    delete_var(ht, hi);
