diff --git a/ChangeLog b/ChangeLog
index 5084b1dff73e2711d0fc52ab5b9cd18d1b3fe614..63f7ec528fd7fa1d6b63de06d494b70a4a863c3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-14  Niels Möller  <nisse@lysator.liu.se>
+
+	* testsuite/nettle-pbkdf2-test: Avoid the bash construction
+	${#foo}.
+
 2014-05-09  Niels Möller  <nisse@lysator.liu.se>
 
 	* mini-gmp.c: Updated, use version from gmp-6.0.0.
diff --git a/testsuite/nettle-pbkdf2-test b/testsuite/nettle-pbkdf2-test
index a1e26380e2fa762980433b66aaaa7ebe8e770bc0..e1241e16fcc0d5109abca95c7dfb72c308444ba9 100755
--- a/testsuite/nettle-pbkdf2-test
+++ b/testsuite/nettle-pbkdf2-test
@@ -9,7 +9,9 @@ test_pbkdf2 () {
     salt="$2"
     iters="$3"
     expected="$4"
-    length=`expr ${#expected} / 2`
+    # Relies on division rounding down; breaks if
+    # $expected contains more than one space.
+    length=`expr "$expected" : '.*' / 2`
 
     printf "%s" "$password" | $EMULATOR ../tools/nettle-pbkdf2 \
 	-i "$iters" -l "$length" "$salt" > test1.out