diff --git a/bin/smartlink b/bin/smartlink
index 4c2f494443cb9060f15c244a9474981503787a1f..a7760c90fcdf47377a26d2548eea0c77086d4a1c 100755
--- a/bin/smartlink
+++ b/bin/smartlink
@@ -109,8 +109,8 @@ if test x$# != x0 ; then
 fi
 
 if test "x$NO_ULIMIT" = "x"; then
-  # Limit virtual memory usage to 64MB.
-  ulimit -v 65536 >/dev/null 2>&1
+  # Limit data segment size to 48MB.
+  ulimit -d 49152 >/dev/null 2>&1
 fi
 
 # Used to be exec, but Digital-Unix's stupid sh has buggy variable-expansion.