diff --git a/src/main/java/ui/syscams/SysCAMSPortTDF.java b/src/main/java/ui/syscams/SysCAMSPortTDF.java
index 159798bba7dc550d76c0ad570b459b49f1b8f2fe..1d23bca516c183806b4005bc08804fcceb1d0c72 100644
--- a/src/main/java/ui/syscams/SysCAMSPortTDF.java
+++ b/src/main/java/ui/syscams/SysCAMSPortTDF.java
@@ -56,6 +56,7 @@ public class SysCAMSPortTDF extends SysCAMSPrimitivePort {
 	private String time;
 	private int rate;
 	private int delay;
+        private int arity;
 	private String TDFType;
 	
 	public SysCAMSPortTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
@@ -102,6 +103,15 @@ public class SysCAMSPortTDF extends SysCAMSPrimitivePort {
 		this.delay = delay;
 	}
 
+    	public int getArity() {
+		return arity;
+	}
+
+	public void setArity(int arity) {
+		this.arity = arity;
+	}
+
+
 	public void drawParticularity(Graphics g) {
 	}
 }
diff --git a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
index b01e6adc35bd343609892d0d0e235fc25d5b7b6e..8eeefc6b14e03771f392bc264865318995943cc3 100644
--- a/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
+++ b/src/main/java/ui/syscams/SysCAMSPrimitivePort.java
@@ -485,7 +485,7 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
         }
     }
 
-    public boolean editOnDoubleClick(JFrame frame) {
+    public boolean editOndoubleClick(JFrame frame) {
     	if (this instanceof SysCAMSPortTDF) {
     		JDialogSysCAMSPortTDF jtdf = new JDialogSysCAMSPortTDF((SysCAMSPortTDF) this);
     		jtdf.setVisible(true);
@@ -546,6 +546,7 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
         	sb.append("\" time=\"" + ((SysCAMSPortTDF) this).getTime());
         	sb.append("\" rate=\"" + ((SysCAMSPortTDF) this).getRate());
         	sb.append("\" delay=\"" + ((SysCAMSPortTDF) this).getDelay());
+		sb.append("\" arity=\"" + ((SysCAMSPortTDF) this).getArity());
         	sb.append("\" type=\"" + encode(((SysCAMSPortTDF) this).getTDFType()));
         }
         if (this instanceof SysCAMSPortDE) {
@@ -579,7 +580,7 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
             Element elt;
             
             double period;
-            int rate, delay, nbits;
+            int rate, delay, arity, nbits;
             String type, time, sensitiveMethod; 
             Boolean sensitive, posFirst;
 
@@ -601,11 +602,13 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
 									time = elt.getAttribute("time");
 									rate = Integer.decode(elt.getAttribute("rate")).intValue();
 									delay = Integer.decode(elt.getAttribute("delay")).intValue();
+									arity = Integer.decode(elt.getAttribute("arity")).intValue();
 									type = elt.getAttribute("type");
 									((SysCAMSPortTDF) this).setPeriod(period);
 									((SysCAMSPortTDF) this).setTime(time);
 									((SysCAMSPortTDF) this).setRate(rate);
 									((SysCAMSPortTDF) this).setDelay(delay);
+									((SysCAMSPortTDF) this).setArity(arity);
 									((SysCAMSPortTDF) this).setTDFType(type);
 								} else if (this instanceof SysCAMSPortDE) {
 									type = elt.getAttribute("type");
@@ -621,6 +624,7 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
 									time = elt.getAttribute("time");
 									rate = Integer.decode(elt.getAttribute("rate")).intValue();
 									delay = Integer.decode(elt.getAttribute("delay")).intValue();
+									//arity = Integer.decode(elt.getAttribute("arity")).intValue();
 									type = elt.getAttribute("type");
 									nbits = Integer.decode(elt.getAttribute("nbits")).intValue();
 									((SysCAMSPortConverter) this).setPeriod(period);
@@ -628,6 +632,7 @@ public class SysCAMSPrimitivePort extends TGCScalableWithInternalComponent imple
 									((SysCAMSPortConverter) this).setRate(rate);
 									((SysCAMSPortConverter) this).setNbits(nbits);
 									((SysCAMSPortConverter)this).setDelay(delay);
+									//((SysCAMSPortConverter)this).setArity(arity);
 									((SysCAMSPortConverter)this).setConvType(type);
                                 }
                             }
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
index 6c74a8b8d2c2664bd72d5aa1a4adcc9de2342152..35159668e0ac0b7f70890b5dadfce2e480fd6105 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
@@ -62,6 +62,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 	private JComboBox<String> periodComboBoxString;
 	private JTextField rateTextField;
 	private JTextField delayTextField;
+	private JTextField arityTextField;
 	private ArrayList<String> listArrayTypeString;
 	private JComboBox<String> typeComboBoxString;
 	private String listOriginString[];
@@ -208,11 +209,32 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		gridBag.setConstraints(delayTextField, constraints);
 		boxPanel.add(delayTextField); 
 
-		JLabel typeLabel = new JLabel("Type : ");
+		JLabel arityLabel = new JLabel("Arity : ");
 		constraints = new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
 				GridBagConstraints.CENTER,
 				GridBagConstraints.BOTH,
 				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(arityLabel, constraints);
+		boxPanel.add(arityLabel);
+
+		if (port.getArity() == -1) { 
+			arityTextField = new JTextField(10);
+		} else {
+			arityTextField = new JTextField("" + port.getArity(), 10);
+		}
+		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(arityTextField, constraints);
+		boxPanel.add(arityTextField); 
+
+
+		JLabel typeLabel = new JLabel("Type : ");
+		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeLabel, constraints);
 		boxPanel.add(typeLabel);
 
@@ -248,7 +270,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 			}
 		}
 		typeComboBoxString.addActionListener(this);
-		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
+		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
 				GridBagConstraints.CENTER,
 				GridBagConstraints.BOTH,
 				new Insets(5, 10, 5, 10), 0, 0);
@@ -256,7 +278,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		boxPanel.add(typeComboBoxString); 
 
 		JLabel orginLabel = new JLabel("Origin : ");
-		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
+		constraints = new GridBagConstraints(0, 6, 1, 1, 1.0, 1.0,
 				GridBagConstraints.CENTER,
 				GridBagConstraints.BOTH,
 				new Insets(5, 10, 15, 10), 0, 0);
@@ -274,7 +296,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		}
 		originComboBoxString.setActionCommand("origin");
 		originComboBoxString.addActionListener(this);
-		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
+		constraints = new GridBagConstraints(1, 6, 2, 1, 1.0, 1.0,
 				GridBagConstraints.CENTER,
 				GridBagConstraints.BOTH,
 				new Insets(5, 10, 15, 10), 0, 0);
@@ -361,6 +383,25 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 			} else {
 				port.setDelay(-1);
 			}
+
+			if (!(arityTextField.getText().isEmpty())) {
+				Boolean arityValueInteger = false;
+				try {
+					Integer.parseInt(arityTextField.getText());
+				} catch (NumberFormatException e1) {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "arity is not a Integer", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+					arityValueInteger = true;
+				}
+				if (arityValueInteger == false) {
+					port.setArity(Integer.parseInt(arityTextField.getText()));
+				}
+			} else {
+				port.setArity(-1);
+			}
+
 			port.setTDFType((String) typeComboBoxString.getSelectedItem());
 			port.setTime((String) periodComboBoxString.getSelectedItem());