diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 7b00ac2..1475ef2 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3747,18 +3747,31 @@
     void
 ex_packadd(exarg_T *eap)
 {
-    static char *plugpat = "pack/*/opt/%s";
+    static char *plugpat = "pack/*/%s/%s";
     int		len;
     char	*pat;
+    int		round;
+    int		res = OK;
 
-    len = (int)STRLEN(plugpat) + (int)STRLEN(eap->arg);
-    pat = (char *)alloc(len);
-    if (pat == NULL)
-	return;
-    vim_snprintf(pat, len, plugpat, eap->arg);
-    do_in_path(p_pp, (char_u *)pat, DIP_ALL + DIP_DIR + DIP_ERR,
-		    add_pack_plugin, eap->forceit ? &APP_ADD_DIR : &APP_BOTH);
-    vim_free(pat);
+    /* Round 1: use "start", round 2: use "opt". */
+    for (round = 1; round <= 2; ++round)
+    {
+	/* Only look under "start" when loading packages wasn't done yet. */
+	if (round == 1 && did_source_packages)
+	    continue;
+
+	len = (int)STRLEN(plugpat) + (int)STRLEN(eap->arg) + 5;
+	pat = (char *)alloc(len);
+	if (pat == NULL)
+	    return;
+	vim_snprintf(pat, len, plugpat, round == 1 ? "start" : "opt", eap->arg);
+	/* The first round don't give a "not found" error, in the second round
+	 * only when nothing was found in the first round. */
+	res = do_in_path(p_pp, (char_u *)pat,
+		DIP_ALL + DIP_DIR + (round == 2 && res == FAIL ? DIP_ERR : 0),
+		add_pack_plugin, eap->forceit ? &APP_ADD_DIR : &APP_BOTH);
+	vim_free(pat);
+    }
 }
 
 #if defined(FEAT_EVAL) && defined(FEAT_AUTOCMD)
diff --git a/src/testdir/test_packadd.vim b/src/testdir/test_packadd.vim
index c83d4a8..09b9b82 100644
--- a/src/testdir/test_packadd.vim
+++ b/src/testdir/test_packadd.vim
@@ -45,6 +45,24 @@
   call assert_fails("packadd", 'E471:')
 endfunc
 
+func Test_packadd_start()
+  let plugdir = s:topdir . '/pack/mine/start/other'
+  call mkdir(plugdir . '/plugin', 'p')
+  set rtp&
+  let rtp = &rtp
+  filetype on
+
+  exe 'split ' . plugdir . '/plugin/test.vim'
+  call setline(1, 'let g:plugin_works = 24')
+  wq
+
+  packadd other
+
+  call assert_equal(24, g:plugin_works)
+  call assert_true(len(&rtp) > len(rtp))
+  call assert_true(&rtp =~ '/testdir/Xdir/pack/mine/start/other\($\|,\)')
+endfunc
+
 func Test_packadd_noload()
   call mkdir(s:plugdir . '/plugin', 'p')
   call mkdir(s:plugdir . '/syntax', 'p')
diff --git a/src/version.c b/src/version.c
index 096d21c..2580b9e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1398,
+/**/
     1397,
 /**/
     1396,
