Following the inverted damma, I found that the dagger alif is rendered incorrectly on particular letters, i.e. ا د ذ ر ز و ء. Instead of being rendered above the letter, the dagger alif is rendered after that letter. Strangely it is not recognized as diacritic/harakah, instead it is recognized as character skeleton. Thus the fix is really hacks, I haven't found what is the impact on the whole system. The hack is done on qaparse.sty and qaboxes.sty.
On qaparse.sty we do the following hacks:
--- qaparse.sty
+++ origin/qaparse.sty
@@ -880,12 +880,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
\def \sv@a@a #1{% Qur'an alif
- %% \if\xpa\is@in@list \the\last@con dFraQzw>%
- %% \if\is@in@list #1TA>\add@fathaspec%
- %% \else\put@syl\tashiltrue\put@con\a@alif@kh\fi%
- %% \else\add@fathaspec\fi%
- \add@fathaspec%
+ \if\xpa\is@in@list \the\last@con dFraQzw>%
+ \if\is@in@list #1TA>\add@fathaspec%
+ \else\put@syl\tashiltrue\put@con\a@alif@kh\fi%
+ \else\add@fathaspec\fi%
\stepcounter{qm@rk}% % to allow multiple floors for quran marks
\case #1\of%
{ \a@H {\put@con \a@H\put@syl\syl@con}%
On qaboxes.sty we do the following hacks:
--- qaboxes.sty
+++ origin/qaboxes.sty
@@ -518,10 +518,7 @@
\put@hi {\char\a@hamz@s}\or % 27
\put@lo {\char\a@hamz@s}\or % 28
\put@aya\or % 29
-% we shall hack this because it triggers alif dagger harakat error in the following char
-% ا د ذ ر ز و ء
-%\put@alif{\char\a@quran@alif}\or % 30 % 30
-\put@fathaspec\or
+\put@alif{\char\a@quran@alif}\or % 30 % 30
\put@hi {\a@syeh}\or % 31
\put@hi {\char 2 }\or % illegal
\else \put@hi {\char 2 }\or % illegal