Button Delegate running more than once

The method I found that worked well to pass functions with arguments was using Addlistener, delegates. But I ran into a problem using delegate inside another.

I created two buttons, (button1 and button2) and applied this code to main camera

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class ButtonControl : MonoBehaviour {

public Button Button1;
public Button Button2;

// Use this for initialization
void Start () {
	int local_i = 5;
	Button1.GetComponent<Button>().onClick.AddListener(delegate{  Job1(local_i); });
}

void Job1(int jobNo){
	int j = 60;
	Debug.Log ("You gave me Job no. " + jobNo);

	Button2.GetComponent<Button>().onClick.AddListener(delegate{ SumTest (jobNo, j); });
}

void SumTest(int i, int j)
{
	Debug.Log (i + " + " + j + " = " + (i + j));
}

}

When I press Button1 and then Button2 the program works fine, but when I press the button1 again and then button2, the SumTest function runs twice. And on the third time, it runs thrice, the button has been clicked only once though. How can I remedy it?
I am not a pro programmer, mostly writing codes on what works basis :). Here is the screenshot of the problem.

you add new listener every time when you press Button1.
Try remove all listener from button2:

 void Job1(int jobNo){
     int j = 60;
     Debug.Log ("You gave me Job no. " + jobNo);
     Button2.GetComponent<Button>().onClick.RemoveAllListeners();
     Button2.GetComponent<Button>().onClick.AddListener(delegate{ SumTest (jobNo, j); });
 }