diff --git a/src/testdir/test_arabic.vim b/src/testdir/test_arabic.vim
index b9e0334..9e648a9 100644
--- a/src/testdir/test_arabic.vim
+++ b/src/testdir/test_arabic.vim
@@ -1,21 +1,23 @@
 " Simplistic testing of Arabic mode.
 
-if !has('arabic')
+if !has('arabic') || !has('multi_byte')
   finish
 endif
 
-set encoding=utf-8
-scriptencoding utf-8
+source view_util.vim
 
-" Return list of utf8 sequences of each character at line lnum.
+" Return list of Unicode characters at line lnum.
 " Combining characters are treated as a single item.
-func GetCharsUtf8(lnum)
+func s:get_chars(lnum)
   call cursor(a:lnum, 1)
   let chars = []
   let numchars = strchars(getline('.'), 1)
   for i in range(1, numchars)
     exe 'norm ' i . '|'
-    call add(chars, execute('norm g8'))
+    let c=execute('ascii')
+    let c=substitute(c, '\n\?<.\{-}Hex\s*', 'U+', 'g')
+    let c=substitute(c, ',\s*Octal\s*\d*', '', 'g')
+    call add(chars, c)
   endfor
   return chars
 endfunc
@@ -43,25 +45,28 @@
   new
   set arabic
   " Typing sghl in Arabic insert mode should show the
-  " Arabic word 'Salaam' i.e. 'peace'.
-  call feedkeys('isghl', 'tx')
-  redraw
+  " Arabic word 'Salaam' i.e. 'peace', spelled:
+  " SEEN, LAM, ALEF, MEEM.
+  " See: https://www.mediawiki.org/wiki/VisualEditor/Typing/Right-to-left
+  call feedkeys('isghl!', 'tx')
+  call assert_match("^ *!\uFEE1\uFEFC\uFEB3$", ScreenLines(1, &columns)[0])
   call assert_equal([
-  \ "\nd8 b3 ",
-  \ "\nd9 84 + d8 a7 ",
-  \ "\nd9 85 "], GetCharsUtf8(1))
+  \ 'U+0633',
+  \ 'U+0644 U+0627',
+  \ 'U+0645',
+  \ 'U+21'], s:get_chars(1))
 
   " Without shaping, it should give individual Arabic letters.
   set noarabicshape
-  redraw
+  call assert_match("^ *!\u0645\u0627\u0644\u0633$", ScreenLines(1, &columns)[0])
   call assert_equal([
-  \ "\nd8 b3 ",
-  \ "\nd9 84 ",
-  \ "\nd8 a7 ",
-  \ "\nd9 85 "], GetCharsUtf8(1))
+  \ 'U+0633',
+  \ 'U+0644',
+  \ 'U+0627',
+  \ 'U+0645',
+  \ 'U+21'], s:get_chars(1))
 
-  set arabicshape&
-  set arabic&
+  set arabic& arabicshape&
   bwipe!
 endfunc
 
@@ -69,7 +74,7 @@
   new
   set arabic
   call feedkeys("i12\<C-^>12\<C-^>12", 'tx')
-  redraw
+  call assert_match("^ *٢١21٢١$", ScreenLines(1, &columns)[0])
   call assert_equal('١٢12١٢', getline('.'))
   set arabic&
   bwipe!
@@ -79,14 +84,50 @@
   new
   set arabic
   call feedkeys("isghl\<BS>\<BS>", 'tx')
-  redraw
-  call assert_equal(["\nd8 b3 ", "\nd9 84 "], GetCharsUtf8(1))
+  call assert_match("^ *\uFEDE\uFEB3$", ScreenLines(1, &columns)[0])
+  call assert_equal(['U+0633', 'U+0644'], s:get_chars(1))
 
-  " Now the same with nodelcombine
+  " Now the same with 'nodelcombine'
   set nodelcombine
   %d
   call feedkeys("isghl\<BS>\<BS>", 'tx')
-  call assert_equal(["\nd8 b3 "], GetCharsUtf8(1)) 
+  call assert_match("^ *\uFEB1$", ScreenLines(1, &columns)[0])
+  call assert_equal(['U+0633'], s:get_chars(1))
   set arabic&
   bwipe!
 endfunc
+
+let s:a_YEH_HAMZA = "\u0626"
+let s:a_i_YEH_HAMZA = "\ufe8b"
+
+let s:a_HAMZA = "\u0621"
+let s:a_s_HAMZA = "\ufe80"
+
+let s:a_ALEF_MADDA = "\u0622"
+let s:a_s_ALEF_MADDA = "\ufe81"
+
+let s:a_ALEF_HAMZA_ABOVE = "\u0623"
+let s:a_s_ALEF_HAMZA_ABOVE = "\ufe83"
+
+let s:a_GHAIN = "\u063a"
+let s:a_f_GHAIN = "\ufece"
+let s:a_s_GHAIN = "\ufecd"
+
+func Test_shape_initial()
+  new
+  set arabicshape
+
+  " Shaping arabic {testchar} non-arabic   Uses chg_c_a2i().
+  " pair[0] = testchar, pair[1] = next-result, pair[2] = current-result
+  for pair in [[s:a_YEH_HAMZA, s:a_f_GHAIN, s:a_i_YEH_HAMZA],
+	\ [s:a_HAMZA, s:a_s_GHAIN, s:a_s_HAMZA],
+	\ [s:a_ALEF_MADDA, s:a_s_GHAIN, s:a_s_ALEF_MADDA],
+	\ [s:a_ALEF_HAMZA_ABOVE, s:a_s_GHAIN, s:a_s_ALEF_HAMZA_ABOVE],
+	\ ]
+    call setline(1, s:a_GHAIN . pair[0] . ' ')
+    call assert_equal([pair[1] . pair[2] . ' '], ScreenLines(1, 3))
+  endfor
+
+  set arabicshape&
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 19d3322..cff9e26 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    389,
+/**/
     388,
 /**/
     387,
