diff --git a/src/testdir/dumps/Test_popupwin_21.dump b/src/testdir/dumps/Test_popupwin_21.dump
new file mode 100644
index 0000000..836abe4
--- /dev/null
+++ b/src/testdir/dumps/Test_popupwin_21.dump
@@ -0,0 +1,15 @@
+>1+0&#ffffff0| @73
+|2| |╔+0#0000001#ffd7ff255|═@11|╗| +0#0000000#ffffff0@5| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|╔+0#0000001#ffd7ff255|═@11|╗| +0#0000000#ffffff0@18
+|3| |║+0#0000001#ffd7ff255|h|e|l@1|o| |b|o|r|d|e|r|║| +0#0000000#ffffff0@5| +0#0000001#ffd7ff255|h|e|l@1|o| |p|a|d@1|i|n|g| | +0#0000000#ffffff0@4|║+0#0000001#ffd7ff255| @11|║| +0#0000000#ffffff0@18
+|4| |╚+0#0000001#ffd7ff255|═@11|╝| +0#0000000#ffffff0@5| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|║+0#0000001#ffd7ff255| |h|e|l@1|o| |b|o|t|h| |║| +0#0000000#ffffff0@18
+|5| @40|║+0#0000001#ffd7ff255| @11|║| +0#0000000#ffffff0@18
+|6| |╔+0#0000001#ffd7ff255|═@8| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|╚+0#0000001#ffd7ff255|═@11|╝| +0#0000000#ffffff0@18
+|7| |║+0#0000001#ffd7ff255|b|o|r|d|e|r| |T|L| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@3|p|a|d@1|i|n|g|s| @2| +0#0000000#ffffff0@37
+|8| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
+|9| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
+|1|0| @72
+|1@1| @72
+|1|2| @72
+|1|3| @72
+|1|4| @72
+@57|1|,|1| @10|T|o|p| 
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 795a1be..523bd59 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -60,20 +60,22 @@
   if !CanRunVimInTerminal()
     return
   endif
-  call writefile([
-	\ "call setline(1, range(1, 100))",
-	\ "call popup_create('hello border', {'line': 2, 'col': 3, 'border': []})",
-	\ "call popup_create('hello padding', {'line': 2, 'col': 23, 'padding': []})",
-	\ "call popup_create('hello both', {'line': 2, 'col': 43, 'border': [], 'padding': []})",
-	\ "call popup_create('border TL', {'line': 6, 'col': 3, 'border': [1, 0, 0, 4]})",
-	\ "call popup_create('paddings', {'line': 6, 'col': 23, 'padding': [1, 3, 2, 4]})",
-	\], 'XtestPopupBorder')
-  let buf = RunVimInTerminal('-S XtestPopupBorder', {'rows': 15})
-  call VerifyScreenDump(buf, 'Test_popupwin_20', {})
 
-  " clean up
-  call StopVimInTerminal(buf)
-  call delete('XtestPopupBorder')
+  for iter in range(0, 1)
+    call writefile([iter == 1 ? '' : 'set enc=latin1',
+	  \ "call setline(1, range(1, 100))",
+	  \ "call popup_create('hello border', {'line': 2, 'col': 3, 'border': []})",
+	  \ "call popup_create('hello padding', {'line': 2, 'col': 23, 'padding': []})",
+	  \ "call popup_create('hello both', {'line': 2, 'col': 43, 'border': [], 'padding': []})",
+	  \ "call popup_create('border TL', {'line': 6, 'col': 3, 'border': [1, 0, 0, 4]})",
+	  \ "call popup_create('paddings', {'line': 6, 'col': 23, 'padding': [1, 3, 2, 4]})",
+	  \], 'XtestPopupBorder')
+    let buf = RunVimInTerminal('-S XtestPopupBorder', {'rows': 15})
+    call VerifyScreenDump(buf, 'Test_popupwin_2' .. iter, {})
+
+    call StopVimInTerminal(buf)
+    call delete('XtestPopupBorder')
+  endfor
 
   let with_border_or_padding = {
 	\ 'line': 2,
