diff --git a/src/main/java/tmltranslator/TMLChannel.java b/src/main/java/tmltranslator/TMLChannel.java
index bea849ea9ec94e02dc1ec00733f5265b6fc9f640..6969fa4751588dc1b4a010a9e3a27f7b7af99779 100755
--- a/src/main/java/tmltranslator/TMLChannel.java
+++ b/src/main/java/tmltranslator/TMLChannel.java
@@ -181,6 +181,8 @@ public class TMLChannel extends TMLCommunicationElement {
         this.nbOfSamples = nbOfSamples;
     }
 
+    public int getNumberOfSamples() { return nbOfSamples;}
+
     public TMLTask getDestinationTask(int index) {
         return destinationTasks.get(index);
     }
diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java
index fb9f007a73682bf780c06696181f3c53166de89e..cc2357492d69b29ba8a2cab7f3018b9c893751bf 100755
--- a/src/main/java/tmltranslator/TMLModeling.java
+++ b/src/main/java/tmltranslator/TMLModeling.java
@@ -2205,14 +2205,14 @@ public class TMLModeling<E> {
         TMLReadChannel read = new TMLReadChannel("ReadOfFork", null);
         forkActivity.addElement(read);
         read.addChannel(_ch);
-        read.setNbOfSamples("1");
+        read.setNbOfSamples("" + _ch.getNumberOfSamples());
 
         TMLWriteChannel []writes = new TMLWriteChannel[nb];
 
         for(i=0; i<nb; i++) {
             writes[i] = new TMLWriteChannel("WriteOfFork" + SEP1 + i, null);
             writes[i].addChannel(chans[i]);
-            writes[i].setNbOfSamples("1");
+            writes[i].setNbOfSamples("" + _ch.getNumberOfSamples());
             forkActivity.addElement(writes[i]);
         }
 
diff --git a/src/main/java/ui/tmlcompd/TMLCFork.java b/src/main/java/ui/tmlcompd/TMLCFork.java
index 16cb170bba44f1ab4a781c6d2536e51e9bf4911f..d1fc0ee9fcc7a7bcc287724f75d4f6e586d7786e 100755
--- a/src/main/java/ui/tmlcompd/TMLCFork.java
+++ b/src/main/java/ui/tmlcompd/TMLCFork.java
@@ -45,6 +45,7 @@ import myutil.GraphicLib;
 import ui.*;
 import ui.util.IconManager;
 
+import javax.swing.*;
 import java.awt.*;
 
 /**
@@ -57,7 +58,7 @@ import java.awt.*;
 public class TMLCFork extends TMLCChannelFacility implements WithAttributes {
     protected int radius = 11;
 
-    protected int numberOfSamples = 1; // Indicates the number of samples being read before they
+     // value Indicates the number of samples being read before they
     // are written to destination. The default is 1.
 
 
@@ -83,8 +84,9 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes {
 
         nbInternalTGComponent = 0;
 
-        value = "F";
+        value = "1";
         name = "Composite port";
+        editable = true;
 
         //insides = new ArrayList<TMLCPrimitivePort>();
         //outsides = new ArrayList<TMLCPrimitivePort>();
@@ -92,6 +94,9 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes {
         myImageIcon = IconManager.imgic1204;
     }
 
+
+
+
     public void internalDrawing(Graphics g) {
 
 	radius = width / 2;
@@ -128,13 +133,36 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes {
 
     }
 
+    public boolean editOndoubleClick(JFrame frame) {
+        String oldValue = value;
+
+        String s = (String) JOptionPane.showInputDialog(frame, "Number of samples per round",
+                "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null,
+                getValue());
+        if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+            try {
+                int testI = Integer.decode(value).intValue();
+            } catch (Exception e) {
+                JOptionPane.showMessageDialog(frame,
+                        "Could not change the number of samples: invalid value",
+                        "Error",
+                        JOptionPane.INFORMATION_MESSAGE);
+                value = oldValue;
+                return false;
+            }
+
+        }
+        return true;
+
+    }
+
 
     public int getType() {
         return TGComponentManager.TMLCTD_FORK;
     }
 
     public int getNumberOfSamples() {
-        return numberOfSamples;
+        return Integer.decode(value).intValue();
     }