diff --git a/src/main/java/ai/AIUseCaseDiagram.java b/src/main/java/ai/AIUseCaseDiagram.java
index ff7c4d2aacf625e48474b0da3fee174d5456c418..e70608eff286e550dacaabc72655f9bf63f33cc9 100644
--- a/src/main/java/ai/AIUseCaseDiagram.java
+++ b/src/main/java/ai/AIUseCaseDiagram.java
@@ -99,6 +99,7 @@ public class AIUseCaseDiagram extends AIInteract {
 
     public String namesOfActors = "";
     public String namesOfUseCases = "";
+    public String connections = "";
 
     public AIUseCaseDiagram(AIChatData _chatData) {
         super(_chatData);
@@ -147,6 +148,9 @@ public class AIUseCaseDiagram extends AIInteract {
                     //specification0 = AvatarSpecification.fromJSONConnection(json, "design", null, true);
                     //errors = AvatarSpecification.getJSONErrors();
                 } else if (stage == 2) {
+                    connections = "";
+                    errors = new ArrayList<>();
+                    connections = getConnections(json, errors);
                     /*specification = AvatarSpecification.fromJSON(json, "design", null, true);
                     if (specification != null) {
                         specification.addSignalsAndConnection(specification0);
@@ -261,6 +265,13 @@ public class AIUseCaseDiagram extends AIInteract {
         return ad.getActorNames();
     }
 
+    private String getConnections(String _spec, ArrayList<String> _errors) throws org.json.JSONException {
+        AvatarUseCaseDiagram ad = new AvatarUseCaseDiagram("", null);
+        _errors.addAll(ad.makeConnectionsFromJson(_spec));
+
+        return ad.getActorNames();
+    }
+
 
 
 
diff --git a/src/main/java/avatartranslator/avatarucd/AvatarUseCaseDiagram.java b/src/main/java/avatartranslator/avatarucd/AvatarUseCaseDiagram.java
index 3f8b5cd668c9f6ec8df7218f8df088c3a4278108..dfe2866eb90e5869b6042c5d0f55077a775a8ca4 100644
--- a/src/main/java/avatartranslator/avatarucd/AvatarUseCaseDiagram.java
+++ b/src/main/java/avatartranslator/avatarucd/AvatarUseCaseDiagram.java
@@ -155,6 +155,55 @@ public class AvatarUseCaseDiagram extends AvatarElement {
         return errors;
     }
 
+    public ArrayList<String> makeConnectionsFromJson(String _json) {
+        ArrayList<String> errors = new ArrayList<>();
+
+        if (_json == null) {
+            errors.add("No \"usecases\" array in json");
+            return errors;
+        }
+        int indexStart = _json.indexOf('{');
+        int indexStop = _json.lastIndexOf('}');
+
+        if ((indexStart == -1) || (indexStop == -1) || (indexStart > indexStop)) {
+            errors.add("Invalid JSON object (start or stop)");
+            return errors;
+        }
+
+        _json = _json.substring(indexStart, indexStop + 1);
+
+        //TraceManager.addDev("Cut spec: " + _spec);
+
+        JSONObject mainObject = new JSONObject(_json);
+        JSONArray useCasesJ = mainObject.getJSONArray("connections");
+
+        if (useCasesJ == null) {
+            TraceManager.addDev("No \"connections\" array in json");
+            errors.add("No \"connections\" array in json");
+            return errors;
+        }
+
+        for (int i = 0; i < useCasesJ.length(); i++) {
+            JSONObject useCase = useCasesJ.getJSONObject(i);
+            String elt1 = useCase.getString("element1");
+            if (elt1 == null) {
+                errors.add("element1 #" + i + " does not exist");
+            } else {
+                elt1 = Conversion.replaceAllString(elt1.trim(), " ", "");
+                String elt2 = useCase.getString("element2");
+                if (elt2 == null) {
+                    errors.add("element2 #" + i + " does not exist");
+                } else {
+                    elt2 = Conversion.replaceAllString(elt2.getString("name").trim(), " ", "");
+                    
+                }
+            }
+        }
+
+
+        return errors;
+    }
+
     public String getActorNames() {
         StringBuffer sb = new StringBuffer();
         for(AvatarActor actor: actors) {