diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 59dc4d5..5ecb1f3 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3509,6 +3509,9 @@
     size_t  afterlen = 0;
     char_u  *ffname = fix_fname(fname);
     size_t  fname_len;
+    char_u  *buf = NULL;
+    char_u  *rtp_ffname;
+    int	    match;
 
     if (ffname == NULL)
 	return;
@@ -3533,26 +3536,28 @@
 	/* Find "ffname" in "p_rtp", ignoring '/' vs '\' differences. */
 	fname_len = STRLEN(ffname);
 	insp = p_rtp;
-	for (;;)
+	buf = alloc(MAXPATHL);
+	if (buf == NULL)
+	    goto theend;
+	while (*insp != NUL)
 	{
-	    if (vim_fnamencmp(insp, ffname, fname_len) == 0)
+	    copy_option_part(&insp, buf, MAXPATHL, ",");
+	    add_pathsep(buf);
+	    rtp_ffname = fix_fname(buf);
+	    if (rtp_ffname == NULL)
+		goto theend;
+	    match = vim_fnamencmp(rtp_ffname, ffname, fname_len) == 0;
+	    vim_free(rtp_ffname);
+	    if (match)
 		break;
-	    insp = vim_strchr(insp, ',');
-	    if (insp == NULL)
-		break;
-	    ++insp;
 	}
 
-	if (insp == NULL)
+	if (*insp == NUL)
 	    /* not found, append at the end */
 	    insp = p_rtp + STRLEN(p_rtp);
 	else
-	{
 	    /* append after the matching directory. */
-	    insp += STRLEN(ffname);
-	    while (*insp != NUL && *insp != ',')
-		++insp;
-	}
+	    --insp;
 	*p4 = c;
 
 	/* check if rtp/pack/name/start/name/after exists */
@@ -3562,7 +3567,8 @@
 
 	oldlen = STRLEN(p_rtp);
 	addlen = STRLEN(ffname) + 1; /* add one for comma */
-	new_rtp = alloc((int)(oldlen + addlen + afterlen + 1)); /* add one for NUL */
+	new_rtp = alloc((int)(oldlen + addlen + afterlen + 1));
+							  /* add one for NUL */
 	if (new_rtp == NULL)
 	    goto theend;
 	keep = (int)(insp - p_rtp);
@@ -3616,6 +3622,7 @@
     }
 
 theend:
+    vim_free(buf);
     vim_free(ffname);
 }
 
diff --git a/src/testdir/test_packadd.vim b/src/testdir/test_packadd.vim
index eca1560..5433c98 100644
--- a/src/testdir/test_packadd.vim
+++ b/src/testdir/test_packadd.vim
@@ -67,6 +67,39 @@
   call assert_equal(new_rtp, &rtp)
 endfunc
 
+func Test_packadd_symlink_dir()
+  if !has('unix')
+	  return
+  endif
+  let top2_dir = s:topdir . '/Xdir2'
+  let real_dir = s:topdir . '/Xsym'
+  silent !ln -s real_dir top2_dir
+  let &rtp = top2_dir . ',' . top2_dir . '/after'
+  let &packpath = &rtp
+
+  let s:plugdir = top2_dir . '/pack/mine/opt/mytest'
+  call mkdir(s:plugdir . '/plugin', 'p')
+
+  exe 'split ' . s:plugdir . '/plugin/test.vim'
+  call setline(1, 'let g:plugin_works = 44')
+  wq
+  let g:plugin_works = 0
+
+  packadd mytest
+
+  " Must have been inserted in the middle, not at the end
+  call assert_true(&rtp =~ '/pack/mine/opt/mytest,')
+  call assert_equal(44, g:plugin_works)
+
+  " No change when doing it again.
+  let rtp_before = &rtp
+  packadd mytest
+  call assert_equal(rtp_before, &rtp)
+
+  set rtp&
+  let rtp = &rtp
+endfunc
+
 " Check command-line completion for 'packadd'
 func Test_packadd_completion()
   let optdir1 = &packpath . '/pack/mine/opt'
diff --git a/src/version.c b/src/version.c
index 5627b3d..83e3b53 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    308,
+/**/
     307,
 /**/
     306,
