diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index b311597d50793ffdf19e9c35b1fa8ac02f7ba031..e1f00993ccf4cf2980c4b7542c84fec81dd3ac77 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -1195,7 +1195,7 @@ sub executable_setup () {
 
 sub environment_setup () {
 
-  my $extra_ld_library_paths;
+  my @ld_library_paths;
 
   # --------------------------------------------------------------------------
   # Setup LD_LIBRARY_PATH so the libraries from this distro/clone
@@ -1203,25 +1203,40 @@ sub environment_setup () {
   # --------------------------------------------------------------------------
   if ( $opt_source_dist )
   {
-    $extra_ld_library_paths= "$glob_basedir/libmysql/.libs/";
+    push(@ld_library_paths, "$glob_basedir/libmysql/.libs/")
   }
   else
   {
-    $extra_ld_library_paths= "$glob_basedir/lib";
+    push(@ld_library_paths, "$glob_basedir/lib")
   }
 
   # --------------------------------------------------------------------------
   # Add the path where mysqld will find udf_example.so
   # --------------------------------------------------------------------------
-  $extra_ld_library_paths .= ":" .
-    ($lib_udf_example ?  dirname($lib_udf_example) : "");
-
-  $ENV{'LD_LIBRARY_PATH'}=
-    "$extra_ld_library_paths" .
-      ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
-  $ENV{'DYLD_LIBRARY_PATH'}=
-    "$extra_ld_library_paths" .
-      ($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
+  if ( $lib_udf_example )
+  {
+    push(@ld_library_paths, dirname($lib_udf_example));
+  }
+
+  # --------------------------------------------------------------------------
+  #Valgrind need to be run with debug libraries otherwise it's almost
+  # impossible to add correct supressions, that means if "/usr/lib/debug"
+  # is available, it should be added to
+  # LD_LIBRARY_PATH
+  # --------------------------------------------------------------------------
+  my $debug_libraries_path= "/usr/lib/debug";
+  if (  $opt_valgrind and -d $debug_libraries_path )
+  {
+    push(@ld_library_paths, $debug_libraries_path);
+  }
+
+  $ENV{'LD_LIBRARY_PATH'}= join(":", @ld_library_paths,
+				split(':', $ENV{'LD_LIBRARY_PATH'}));
+  mtr_debug("LD_LIBRARY_PATH: $ENV{'LD_LIBRARY_PATH'}");
+
+  $ENV{'DYLD_LIBRARY_PATH'}= join(":", @ld_library_paths,
+				split(':', $ENV{'DYLD_LIBRARY_PATH'}));
+  mtr_debug("DYLD_LIBRARY_PATH: $ENV{'DYLD_LIBRARY_PATH'}");
 
   # --------------------------------------------------------------------------
   # Also command lines in .opt files may contain env vars