diff --git a/CI/deploy.sh b/CI/deploy.sh
index 4ae4d5babe1fcf760c568121135ff8440bf677b7..c05237213df5d7447fdfd5cbf723948324d0e0ba 100755
--- a/CI/deploy.sh
+++ b/CI/deploy.sh
@@ -30,21 +30,21 @@ echo "jobs_directory=${jobs_directory}"
 
 # Create today's directory on serveur otb5-vm2
 echo "Creating today's directory"
-ssh otbpush@otb5-vm2.orfeo-toolbox.org mkdir -p ${jobs_directory}
+ssh otbpush@otb5-vm2.orfeo-toolbox.org mkdir -p "${jobs_directory}"
 # Delete latest
 echo "Deleting latest directory"
 if [ "$CI_COMMIT_REF_NAME" = "develop" ]
 then # On develop
   ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf /home/otbpush/test/latest
   # Create symilink
-  ssh otbpush@otb5-vm2.orfeo-toolbox.org ln -s ${jobs_directory} /home/otbpush/test/latest
+  ssh otbpush@otb5-vm2.orfeo-toolbox.org ln -s "${jobs_directory}" /home/otbpush/test/latest
   # Cleaning old directory
   matching_dirs=$(ls -1 | grep -oE '^20[0-9]{2}-[0-9]{2}-[0-9]{2}$' | sort)
   history_length=11
   rm -rf "$(echo "$matching_dirs" | tr ' ' '\n' | head -n -${history_length})"
 else # On release
   # Remove what is inside staging area
-  ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf ${jobs_directory}/*
+  ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf "${jobs_directory}"/*
 fi
 
 
@@ -53,24 +53,24 @@ fi
 # Remove old package and source file
 echo "Removing old package and sources"
 ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-rm ${jobs_directory}/OTB-*.zip \
-${jobs_directory}/OTB-*.tar.*
+rm "${jobs_directory}"/OTB-*.zip \
+"${jobs_directory}"/OTB-*.tar.*
 # Push package
 echo "Pushing new binary and sources packages"
-scp OTB-*.{tar.gz,zip} otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/.
+scp OTB-*.{tar.gz,zip} otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/.
 
 
 echo "Removing old CookBook"
 ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-rm ${jobs_directory}/CookBook-*-html.tar.gz 
+rm "${jobs_directory}"/CookBook-*-html.tar.gz
 
 echo "Removing old Doxygen"
 ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-rm ${jobs_directory}/OTB-Doxygen-*.tar.bz2
+rm "${jobs_directory}"/OTB-Doxygen-*.tar.bz2
 
 # Push doc
 echo "Pushing new documentation"
-scp {CookBook-*-html.tar.gz,OTB-Doxygen-*.tar.bz2} otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/.
+scp {CookBook-*-html.tar.gz,OTB-Doxygen-*.tar.bz2} otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/.
 
 # Create zip, tar.gz and tar.xy source
 echo "Creating source tarball and zip"
@@ -81,33 +81,33 @@ git archive --format=tar.xz -o OTB-sources-"$CI_COMMIT_SHORT_SHA".tar.xz HEAD
 # Remove old source file
 #echo "Removing old sources"
 #ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-#rm ${jobs_directory}/OTB-sources-*.zip \
-#${jobs_directory}/OTB-sources-*.tar.*
+#rm "${jobs_directory}"/OTB-sources-*.zip \
+#"${jobs_directory}"/OTB-sources-*.tar.*
 
 # Push new source file
 echo "Pushing new sources"
 scp OTB-sources-"$CI_COMMIT_SHORT_SHA".* \
-otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/
+otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/
 
 echo "${CI_COMMIT_SHA}" > ref.sha
 echo "Pushing ref.sha"
-scp ref.sha otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/
+scp ref.sha otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/
 
 #Untar doc
 if [ "$CI_COMMIT_REF_NAME" = "develop" ]
 then
   #Cookbook
   ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-    tar -xf ${jobs_directory}/CookBook-*-html.tar.gz -C ${jobs_directory}/
+    tar -xf "${jobs_directory}"/CookBook-*-html.tar.gz -C "${jobs_directory}"/
   ssh otbpush@otb5-vm2.orfeo-toolbox.org \
     rm -rf /home/otbpush/test/CookBook/*
   ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-    mv ${jobs_directory}/CookBook-*/* /home/otbpush/test/CookBook/.
+    mv "${jobs_directory}"/CookBook-*/* /home/otbpush/test/CookBook/.
 
   # Doxygen
   ssh otbpush@otb5-vm2.orfeo-toolbox.org \
     rm -rf /home/otbpush/test/Doxygen/*
   # Strip first component of the tar (Doxygen/html/...)
   ssh otbpush@otb5-vm2.orfeo-toolbox.org \
-    tar -xf ${jobs_directory}/OTB-Doxygen-*.tar.bz2 -C /home/otbpush/test/Doxygen/ --strip-components=1
+    tar -xf "${jobs_directory}"/OTB-Doxygen-*.tar.bz2 -C /home/otbpush/test/Doxygen/ --strip-components=1
 fi
diff --git a/Packaging/Files/post_install.sh.in b/Packaging/Files/post_install.sh.in
index 7e935214d0dbe5a7607234fa233d859caf405682..30154ec2bf4e6ca6043e1a56efa67178d7305450 100644
--- a/Packaging/Files/post_install.sh.in
+++ b/Packaging/Files/post_install.sh.in
@@ -49,17 +49,17 @@ if [ "$ostype" != "RedHatEnterprise" ] ; then
   # Note that the install path differs from OS. To handle it,
   # check before the folder name (always prefixed of python3)
   osgeo_pkg_path=$(find "$OTB_INSTALL_DIR/lib" -mindepth 3 -maxdepth 3 -type d -name "osgeo")
-  gdal_python_found="$(find $osgeo_pkg_path -name "*$concatpyversion-x86_64-linux*")"
+  gdal_python_found="$(find "$osgeo_pkg_path" -name "*$concatpyversion-x86_64-linux*")"
   if [ -z "$gdal_python_found" ]; then
     echo "***** Python $concatpyversion detected, downloading gdal bindings compiled for this Python version *****"
-    HTTP_STATUS=$(curl -s -o "$OTB_INSTALL_DIR"/tools/gdal-py$concatpyversion.tar.gz -w "%{response_code}\n" https://www.orfeo-toolbox.org/packages/archives/OTB/OTB-$OTB_SHORT_VERSION-GDAL-bindings-py$concatpyversion.tar.gz)
+    HTTP_STATUS=$(curl -s -o "$OTB_INSTALL_DIR"/tools/gdal-py"$concatpyversion".tar.gz -w "%{response_code}\n" https://www.orfeo-toolbox.org/packages/archives/OTB/OTB-"$OTB_SHORT_VERSION"-GDAL-bindings-py"$concatpyversion".tar.gz)
     if [ "$HTTP_STATUS" -eq 200 ]; then
-      tar -xf "$OTB_INSTALL_DIR"/tools/gdal-py$concatpyversion.tar.gz -C $python_distpackage_path
-      rm "$OTB_INSTALL_DIR"/tools/gdal-py$concatpyversion.tar.gz
+      tar -xf "$OTB_INSTALL_DIR"/tools/gdal-py"$concatpyversion".tar.gz -C "$osgeo_pkg_path"
+      rm "$OTB_INSTALL_DIR"/tools/gdal-py"$concatpyversion".tar.gz
       echo "***** GDAL bindings for python $concatpyversion successfully installed *****"
     else
       echo "Can not find GDAL bindings at https://www.orfeo-toolbox.org/packages/archives/OTB/OTB-$OTB_SHORT_VERSION-GDAL-bindings-py$concatpyversion.tar.gz"
-      return -1
+      return 255
     fi
   fi
 fi
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index f43ddafdede3966965ddcf21fca083ad9d0bed93..349b9468bd1f425e88c932b534f15771923c0064 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,3 +1,12 @@
+OTB-v 9.1.1 - Changes since version 9.1.0 (March 19th, 2024)
+-------------------------------------------------------------
+Bugs fixed:
+  * !1065: otbQGisDescriptor now read a list of module, not just one module by Tristan Laurent
+  * !1060: COMP: compile without FFTW to avoid GPL contamination by Tristan Laurent
+  * !1058: BUG: correct SetInputRequestedRegionsImpl to propagate correct neighborhood type by Tristan Laurent
+  * !1054: BUG: fix empty OS variable, fix osgeo finding on rhel-based OS by Tristan Laurent
+  * !1053: Remove/update old windows files and remove travis ones by Tristan Laurent
+
 OTB-v 9.1.0 - Changes since version 9.0.0 (September 27th, 2024)
 -------------------------------------------------------------