diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 23aeb004c71e27adc20f8715f4c6b1ed63fca60a..9960aa2d47a2292cff163ac7c5e6aa03306c7688 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -526,6 +526,10 @@ sub command_line_setup () {
   # 5.1 test run, even if different MTR_BUILD_THREAD is used. This means
   # all port numbers might not be used in this version of the script.
   #
+  # Also note the limiteation of ports we are allowed to hand out. This
+  # differs between operating systems and configuration, see
+  # http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
+  # But a fairly safe range seems to be 5001 - 32767
   if ( $ENV{'MTR_BUILD_THREAD'} )
   {
     # Up to two masters, up to three slaves
@@ -537,6 +541,13 @@ sub command_line_setup () {
     $im_mysqld2_port=     $opt_master_myport + 8;
   }
 
+  if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 )
+  {
+    mtr_error("MTR_BUILD_THREAD number results in a port",
+              "outside 5001 - 32767",
+              "($opt_master_myport - $opt_master_myport + 10)");
+  }
+
   # Read the command line
   # Note: Keep list, and the order, in sync with usage at end of this file