diff --git a/bench/kernel/lms/lms.c b/bench/kernel/lms/lms.c
index 792c8fc67fd3824a44e450b4e789adf18b711606..42b192921cbebcb6750004042b7694de43fea434 100755
--- a/bench/kernel/lms/lms.c
+++ b/bench/kernel/lms/lms.c
@@ -78,8 +78,7 @@ void lms_init( void )
   int k;
 
   lms_input[ 0 ] = 0.0;
-  _Pragma( "loopbound min 101 max 101" )
-  for ( k = 0 ; k < N ; k += 2 ) {
+  {
     double v1, v2, r;
     const double scaleFactor = 0.000000000931322574615478515625;
     do {
@@ -94,8 +93,27 @@ void lms_init( void )
 
     // remap v1 and v2 to two Gaussian numbers
     double noise = 1 / r; // approximation of sqrt(0.96) * sqrt(-log(r)/r);
-    lms_input[ k + 1 ] = lms_sinus( k )   + noise * v2;
-    lms_input[ k + 2 ] = lms_sinus( k + 1 ) + noise * v1;
+    lms_input[1] = lms_sinus(1) + noise * v2;
+  }
+
+  _Pragma( "loopbound min 100 max 100" )
+  for ( k = 2 ; k < N ; k += 2 ) {
+    double v1, v2, r;
+    const double scaleFactor = 0.000000000931322574615478515625;
+    do {
+      // generate two random numbers between -1.0 and +1.0
+      seed = seed * 1103515245 + 12345;
+      v1 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
+      seed = seed * 1103515245 + 12345;
+      v2 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
+      r = v1 * v1 + v2 * v2;
+    } while ( r > 1.0 );
+    // radius < 1
+
+    // remap v1 and v2 to two Gaussian numbers
+    double noise = 1 / r; // approximation of sqrt(0.96) * sqrt(-log(r)/r);
+    lms_input[ k ] = lms_sinus(k) + noise * v2;
+    lms_input[ k + 1 ] = lms_sinus(k + 1) + noise * v1;
   }
 
 }
@@ -166,9 +184,12 @@ int lms_return( void )
   double sum = 0.0;
 
   _Pragma( "loopbound min 201 max 201" )
-  for ( i = 0 ; i < N ; i++ )
-    sum += lms_output[ i ];
-  return ( int )( 1000000.0 * ( sum + 4.5052425 ) );
+  for ( i = 0 ; i < N ; i++ ) {
+      sum += lms_output[i];
+  }
+
+  return ( int )( 1000000.0 * ( sum + 4.705719 ) );
+  // How did this 'correct value' come to be? The previous calculation contained UB.
   // correct value: -4.505242517625447362661361694336
 }
 
diff --git a/bench/kernel/minver/minver.c b/bench/kernel/minver/minver.c
index 2f3615e6a00d3cb9e1dda748b387ce5882d1a4ab..f417d1fc902d970ef20d74f6bddf0d44d9a2137c 100755
--- a/bench/kernel/minver/minver.c
+++ b/bench/kernel/minver/minver.c
@@ -104,7 +104,7 @@ int minver_minver( int side, double eps )
 
   int work[ 500 ], i, j, k, iw;
   int r = 0;
-  double w, wmax, pivot, api, w1;
+  double w = 0, wmax, pivot, api, w1;
 
   if ( side < 2 || side > 500 || eps <= 0.0 )
     return ( 999 );
diff --git a/bench/sequential/dijkstra/dijkstra.c b/bench/sequential/dijkstra/dijkstra.c
index 912c382bbceb22a6a2b899ca4831ceaf74cd0694..7437c42ef43afe959b3502874b3246f17df283c7 100755
--- a/bench/sequential/dijkstra/dijkstra.c
+++ b/bench/sequential/dijkstra/dijkstra.c
@@ -132,8 +132,8 @@ int dijkstra_qcount( void )
 int dijkstra_find( int chStart, int chEnd )
 {
   int ch;
-  int prev, node;
-  int cost, dist;
+  int prev, node = 0;
+  int cost, dist = 0;
   int i;
 
   _Pragma( "loopbound min 100 max 100" )
diff --git a/bench/sequential/mpeg2/mpeg2.c b/bench/sequential/mpeg2/mpeg2.c
index ffa5d18959a9f55d8bf1be8688b8ca32898c9268..62b8779ccd88dbf884680f5f2082f891704cd4ff 100755
--- a/bench/sequential/mpeg2/mpeg2.c
+++ b/bench/sequential/mpeg2/mpeg2.c
@@ -12447,7 +12447,7 @@ void mpeg2_dpframe_estimate( unsigned char *ref, unsigned char *mb, int i,
 {
   int pref, ppred, delta_x, delta_y;
   int is, js, it, jt, ib, jb, it0, jt0, ib0, jb0;
-  int imins, jmins, imint, jmint, iminb, jminb, imindmv, jmindmv;
+  int imins = 0, jmins = 0, imint = 0, jmint = 0, iminb = 0, jminb = 0, imindmv = 0, jmindmv = 0;
   int vmc, local_dist;
 
 
@@ -12604,7 +12604,7 @@ void mpeg2_dpfield_estimate( unsigned char *topref, unsigned char *botref,
 {
   unsigned char *sameref, *oppref;
   int io0, jo0, io, jo, delta_x, delta_y, mvxs, mvys, mvxo0, mvyo0;
-  int imino, jmino, imindmv, jmindmv, vmc_dp, local_dist;
+  int imino = 0, jmino = 0, imindmv = 0, jmindmv = 0, vmc_dp = 0, local_dist = 0;
 
 
   /* Calculate Dual Prime distortions for 9 delta candidates */