diff --git a/Makefile.sphinx b/Makefile.sphinx
index 01e80e52ec6935de01531022a1ae5715649e37ee..8d87c87d482c4e2cedd9d4b584535d8ce986d7c1 100644
--- a/Makefile.sphinx
+++ b/Makefile.sphinx
@@ -34,7 +34,7 @@ sphinx/%: $(apidoc_dep)
 
 apidoc: $(apidoc_dep)
 apidoc-stamp:
-	$(SPHINXAPIDOC) $(APIDOC_OPTS) -o $(APIDOC_DIR) ../swh $(APIDOC_SWH_EXCLUDES)
+	$(SPHINXAPIDOC) $(APIDOC_OPTS) -o $(APIDOC_DIR) `if [ -d ../src/swh ]; then echo ../src/swh; else echo ../swh; fi` $(APIDOC_SWH_EXCLUDES)
 	# to silent Sphinx warnings about apidoc documents not included in any toctree
 	find $(shell pwd)/apidoc -name "*.rst" | xargs sed -i '1i:orphan:\n'
 	touch $@
diff --git a/docs/devel/bin/ln-sphinx-subprojects b/docs/devel/bin/ln-sphinx-subprojects
index 09f2f8c3143ad12f98d6bb31e2d0bf59304878af..a4ad599242e40921b7c368204f8227846bb51ec5 100755
--- a/docs/devel/bin/ln-sphinx-subprojects
+++ b/docs/devel/bin/ln-sphinx-subprojects
@@ -16,6 +16,8 @@ create_links () {
         fi
         if [ -d "../../../${pymodule}/swh" ] ; then
             cp -r -f --symbolic-link $(realpath ../../../${pymodule}/swh/*) sources/swh/
+        elif [ -d "../../../${pymodule}/src/swh" ] ; then
+            cp -r -f --symbolic-link $(realpath ../../../${pymodule}/src/swh/*) sources/swh/
         fi
         pushd ../../../${pymodule}
         for EXT in rst md; do