diff --git a/src/hashtab.c b/src/hashtab.c
index ad01857..450cf98 100644
--- a/src/hashtab.c
+++ b/src/hashtab.c
@@ -286,7 +286,6 @@
     ++ht->ht_locked;
 }
 
-#if 0	    /* currently not used */
 /*
  * Lock a hashtable at the specified number of entries.
  * Caller must make sure no more than "size" entries will be added.
@@ -298,7 +297,6 @@
     (void)hash_may_resize(ht, size);
     ++ht->ht_locked;
 }
-#endif
 
 /*
  * Unlock a hashtable: allow ht_array changes again.
@@ -368,10 +366,10 @@
     }
     else
     {
-	/* Use specified size. */
-	if ((long_u)minitems < ht->ht_used)	/* just in case... */
+	// Use specified size.
+	if ((long_u)minitems < ht->ht_used)	// just in case...
 	    minitems = (int)ht->ht_used;
-	minsize = minitems * 3 / 2;	/* array is up to 2/3 full */
+	minsize = (minitems * 3 + 1) / 2;	// array is up to 2/3 full
     }
 
     newsize = HT_INIT_SIZE;
diff --git a/src/popupwin.c b/src/popupwin.c
index d0f6156..4750adf 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2032,7 +2032,9 @@
 	top_extra = popup_top_extra(wp);
 	left_extra = wp->w_popup_border[3] + wp->w_popup_padding[3];
 
+	// we know how much space we need, avoid resizing halfway
 	dict = rettv->vval.v_dict;
+	hash_lock_size(&dict->dv_hashtab, 11);
 
 	dict_add_number(dict, "line", wp->w_winrow + 1);
 	dict_add_number(dict, "col", wp->w_wincol + 1);
@@ -2050,6 +2052,8 @@
 	dict_add_number(dict, "firstline", wp->w_topline);
 	dict_add_number(dict, "visible",
 		      win_valid(wp) && (wp->w_popup_flags & POPF_HIDDEN) == 0);
+
+	hash_unlock(&dict->dv_hashtab);
     }
 }
 /*
diff --git a/src/proto/hashtab.pro b/src/proto/hashtab.pro
index 9690714..21794ed 100644
--- a/src/proto/hashtab.pro
+++ b/src/proto/hashtab.pro
@@ -9,6 +9,7 @@
 int hash_add_item(hashtab_T *ht, hashitem_T *hi, char_u *key, hash_T hash);
 void hash_remove(hashtab_T *ht, hashitem_T *hi);
 void hash_lock(hashtab_T *ht);
+void hash_lock_size(hashtab_T *ht, int size);
 void hash_unlock(hashtab_T *ht);
 hash_T hash_hash(char_u *key);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 5104f6a..25bfd16 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1752,
+/**/
     1751,
 /**/
     1750,
