   // shift all values in the array
   for( int current_idx = 6; current_idx >= 0; current_idx-- ){
     Serial << "copy " << touch_array_touched_leg[ current_idx ] << " from " << current_idx << endl;
-    touch_array_touched_leg[ ( current_idx + 1 ) ] = touch_array_touched_leg[ current_idx ];
+    touch_array_touched_leg[( current_idx + 1 )] = touch_array_touched_leg[current_idx];
   }
   Serial << "done copying" << endl;
   // add the leg number to the stack and record the last touch time.
-  touch_array_touched_leg[ 0 ] = leg+1;
+  touch_array_touched_leg[0] = (leg+1);
   touch_array_last_touch_time = millis();
 }
 
 void evalTouchTimeArray(){
   // get the most recent entry in touch_array_times
-  if( ( millis() - touch_array_last_touch_time ) > TOUCH_TRIGGER_DELAY ){
+  if( touch_array_last_touch_time > 0 && ( millis() - touch_array_last_touch_time ) > TOUCH_TRIGGER_DELAY ){
     // evaluate the stack.
     // go through the array and report all duplets (i.e. double touches of the same leg)
     uint8_t lastleg=0;
-    char touch_string[4]; // should be touch_array_touched_leg/2
+    char touch_string[4]=""; // should be touch_array_touched_leg/2
     for( int i=0; i < 8; i++ ){
       if( lastleg!=touch_array_touched_leg[ i ] ){
 	lastleg = touch_array_touched_leg[ i ];
       }else{
+	// means the last record also touched this leg.
 	if( lastleg!=0 ){
 	  #ifdef TOUCHY_FEELY_DEBUG
 	  Serial << "evalTouchTimeArray: got twice " << lastleg << endl;
+	  #endif
+	  // append to the touch_string
+	  char current_leg_string[2]="";
+	  sprintf( current_leg_string, "%d", lastleg );
+	  strcat( touch_string, current_leg_string );
+	  #ifdef TOUCHY_FEELY_DEBUG
+	  Serial << "evalTouchTimeArray: the touch string is now " << touch_string << endl;
 	  #endif
 	  // report the lastleg, maybe add to character string?
 	  //int aInt = 368;


void clydeReleased( uint8_t l ){
#ifdef TOUCHY_FEELY_DEBUG
  Serial << "Callback- released!" << l << endl;
#endif
  //checkTouch( l );
  addToTouchArray( l );

// note, cycleRGB is defined in Behaviour.ino
// Update: we require also a "double-touch" to avoid false positive triggers.
//uint32_t last_touch_time[ 6 ] = {0};
//uint8_t touch_counts[ 6 ] = {0};

// multitouch:
// - use an array to record which legs have been touched
