diff --git a/src/tools/make_ctags b/src/tools/make_ctags
index ac7134f3d81446e2180ab6b5a8dae72e85243fe0..072b9bb9d28bbeb662fabbb954b86e450a9ffe30 100755
--- a/src/tools/make_ctags
+++ b/src/tools/make_ctags
@@ -14,5 +14,5 @@ sort tags >/tmp/$$ && mv /tmp/$$ tags
 
 find . -name  'CVS' -prune -o -type d -print  |while read DIR
 do
-	[ "$DIR" != "." ] && ln -f -s `pwd`/tags $DIR/tags
+	[ "$DIR" != "." ] && ln -f -s `echo "$DIR" | sed 's;/[^/]*;/..;g'`/tags $DIR/tags
 done
diff --git a/src/tools/make_mkid b/src/tools/make_mkid
index bad5a4d04a621e7ab5367b04255fc052da15080a..ac71bd92b5badf2871547d550207efeb43422bd7 100755
--- a/src/tools/make_mkid
+++ b/src/tools/make_mkid
@@ -5,5 +5,5 @@ mkid `find \`pwd\`/ \( -name _deadcode -a -prune \) -o \
 
 find . -name  'CVS' -prune -o -type d -print  |while read DIR
 do
-	[ "$DIR" != "." ] && ln -f -s `pwd`/ID $DIR/ID
+	[ "$DIR" != "." ] && ln -f -s `echo "$DIR" | sed 's;/[^/]*;/..;g'`/ID $DIR/ID
 done