diff --git a/CHANGELOG.md b/CHANGELOG.md
index 305dd69b00b84c30b5caa91dec9f97b6beaa4b92..fd1415efae27e94cb5edea8469c5049d246300ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed
 
+* #125 - `bend_symlinks` script did not allow whitespace in filename.
 * #122 - Dead-lock due to error in the DatabaseAccessManager.
 * #120 - Editing entities that were created with a no longer existing user
   leads to a server error.
diff --git a/misc/bend_symlinks/src/main.sh b/misc/bend_symlinks/src/main.sh
index c2a6a94766d437e41619c2602d1c62417e09ee42..1d148df30533529855f65141ba5705d76b0cb687 100644
--- a/misc/bend_symlinks/src/main.sh
+++ b/misc/bend_symlinks/src/main.sh
@@ -66,8 +66,10 @@ if [ $IS_MOVE -eq 1 ] ; then
     REPLACEMENT=$(new_dir "$REPLACEMENT")
 fi
 
+
 set -o noglob
-for syml in $(find -P $(realpath $FILE_SYSTEM_ROOT) -type l) ; do
+find -P $(realpath $FILE_SYSTEM_ROOT) -type l -print0 |
+        while ISF= read -r -d '' syml; do
   OLD_TARGET=$(realpath -m "$syml" | sed -n -r "/$REGEX_OLD/p")
   if [ -z "$OLD_TARGET" ] ; then
     # filter non matching
diff --git a/misc/bend_symlinks/src/utils.sh b/misc/bend_symlinks/src/utils.sh
index 0e10fe9acc0c1c27fa3f2f58add8e7daf845e24c..2ddda289639a9a38e13540da2caad32dc439aa4a 100644
--- a/misc/bend_symlinks/src/utils.sh
+++ b/misc/bend_symlinks/src/utils.sh
@@ -37,6 +37,8 @@ function escape_simple_path () {
     SPATH=$(echo "$SPATH" | sed -r "s/\(/\\\\(/g")
     # {
     SPATH=$(echo "$SPATH" | sed -r "s/\{/\\\\{/g")
+    # white space
+    SPATH=$(echo "$SPATH" | sed -r "s/ /\\ /g")
     echo "$SPATH"
 }
 
diff --git a/misc/bend_symlinks/test/test_suite.sh b/misc/bend_symlinks/test/test_suite.sh
index 9ffa6b1fffe9ec095ebbc3a25bdfa5ee767e1a69..2def1fda1450ad9c3b412f033a6085bddd840d8f 100755
--- a/misc/bend_symlinks/test/test_suite.sh
+++ b/misc/bend_symlinks/test/test_suite.sh
@@ -23,8 +23,11 @@ tearDown () {
 
 _make_test_file () {
     touch "$DATA_DIR/$1"
-    ln -s $(realpath "$DATA_DIR/$1") "$FILE_SYSTEM_ROOT/$1"
-    assertEquals "initial target $1" $(realpath "$FILE_SYSTEM_ROOT/$1") $(realpath "$DATA_DIR/$1")
+    TARGET=$(realpath "$DATA_DIR/$1")
+    LINK=$FILE_SYSTEM_ROOT/$1
+    ln -s "$TARGET" "$LINK"
+    LINKED=$(realpath "$LINK")
+    assertEquals "initial target $1" "$LINKED" "$TARGET"
 }
 
 _break_link_move_file () {
@@ -35,7 +38,8 @@ _break_link_move_file () {
     NEW_PATH_REAL=$(realpath "$NEW_PATH")
     LINK="$FILE_SYSTEM_ROOT/$1"
     mv "$OLD_PATH_REAL" "$NEW_PATH_REAL"
-    assertEquals "still target $OLD_PATH_REAL" $(realpath "$LINK") "$OLD_PATH_REAL"
+    LINKED=$(realpath "$LINK")
+    assertEquals "still target $OLD_PATH_REAL" "$LINKED" "$OLD_PATH_REAL"
     assertFalse "$LINK link is broken" "[ -f '$LINK' ]"
     assertFalse "$OLD_PATH_REAL was moved" "[ -f '$OLD_PATH_REAL' ]"
     assertTrue "$NEW_PATH_REAL is there" "[ -f '$NEW_PATH_REAL' ]"
@@ -51,7 +55,7 @@ assertLinkOk () {
     LINK=$(realpath "$FILE_SYSTEM_ROOT/$1")
     TARGET=$(realpath "$DATA_DIR/$2")
     assertTrue "target exists $LINK" "[ -f '$LINK' ]"
-    assertEquals "target matches $TARGET" $TARGET "$LINK"
+    assertEquals "target matches $TARGET" "$TARGET" "$LINK"
     set +o noglob
 }
 
@@ -135,6 +139,7 @@ testFullPathWithStrangeChars () {
     _testFullPathWithStrageChars "{"
     _testFullPathWithStrageChars "]"
     _testFullPathWithStrageChars "[.]"
+    _testFullPathWithStrageChars " "
 }
 
 testRegex () {