diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java
index 4cb75e176902b0fddf63176a92d894809e2c06d6..1b3787b9a95988c7bb11522c41e5a2b6ad481917 100644
--- a/src/main/java/avatartranslator/AvatarActionOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java
@@ -82,6 +82,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
 	public AvatarActionOnSignal(String _name, Object _referenceObject, AvatarStateMachineOwner _block) {
 		super( _name, _referenceObject, _block, true, false );
 		values = new LinkedList<String>();
+        originalValues = new LinkedList<>();
 		actionAttr = null;
 	}
     public AvatarSignal getSignal() {
diff --git a/src/main/java/avatartranslator/AvatarQueryOnSignal.java b/src/main/java/avatartranslator/AvatarQueryOnSignal.java
index 321b1790d0d0b30dd3567e7ff5d508e52e8acd4a..b2504d82dafa245788be4e7371743c4d748439b0 100644
--- a/src/main/java/avatartranslator/AvatarQueryOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarQueryOnSignal.java
@@ -91,7 +91,7 @@ public class AvatarQueryOnSignal extends AvatarStateMachineElement {
 
     public String getExtendedName() {
     	if ((getSignal() == null) || (getAttribute() == null)) {
-    		String s = getName() + " refobjt=" + referenceObject.toString();
+    		String s = getName() + " refobjt=" + referenceObject;
     		TraceManager.addDev("Null signal" + " res=" + s);
     		return s;
     	}
diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java
index a8f718e1b17c64c52b0059888363df924adef710..f6ddc11ba83aef3aaad5818cefa2af7af5a7e745 100644
--- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java
+++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java
@@ -461,6 +461,7 @@ public class Avatar2SysML {
                 avsysml.append(indent + "attribute " + fieldSysMLname(aa.getName()) + " : Integer;\n");
                 methodInfo.addField(fieldSysMLname(aa.getName()), AvatarType.INTEGER, null);
             }
+            j++;
         }
         if (returnType != null)
             avsysml.append(indent + "return : " + returnType + ";\n");
@@ -878,6 +879,13 @@ public class Avatar2SysML {
         indent = indent.substring(indentStepSize);
         sysMLrequests.insert(0, indent + poolName + " = (\n");
         sysMLrequests.append(indent + ")");
+   }
+   private String clean_guard(String _guard) {
+        int open = _guard.indexOf('[');
+        int close = _guard.lastIndexOf(']');
+        if (open != -1 && close != -1 && close > open)
+            return _guard.substring(open+1, close);
+        else return _guard;
    }
     // index is 0 if transition is alone
     void transitionAndRequest(String srcName, AvatarTransition at, int index){
@@ -912,7 +920,8 @@ public class Avatar2SysML {
 
         // computing request
         if (guarded) {
-            sysMLrequests.append(indent + "if " + expr2SysML(((AvatarTransition)at).getOriginalGuard()) + " ?\n");
+            sysMLrequests.append(indent + "if " +
+                    expr2SysML(clean_guard(((AvatarTransition)at).getOriginalGuard())) + " ?\n");
             indent += indentStep;
         }
         String minDelay = ( at.getOriginalMinDelay().length()==0 ? "0" : expr2SysML(at.getOriginalMinDelay()) );
@@ -970,7 +979,7 @@ public class Avatar2SysML {
         else
             sysMLtransitions.append("\n");
         indent += indentStep;
-        if (doAction.length() == 0)
+        if (doAction == null || doAction.length() == 0)
             sysMLtransitions.append(indent + "then " + tgtName +
                     endTransition(at.getDelayDistributionLaw(), at.getDelayExtra1(), at.getDelayExtra2(), at.getProbability()));
         else {
diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java
index 570ff292d17f21c4f24a8365fa7547e3346d2202..0ba091a47aee1906c8916ab426c6737437c07b1d 100644
--- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java
+++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java
@@ -49,8 +49,9 @@ public class Avatar2SysMLNames {
     public static String attributeSysMLname(String _name){
         if (_name == null) return null;
         String name = _name.trim();
-        String[] list = name.split(".");
-        StringBuffer result = new StringBuffer("'$" + list[0] + "'");
+        String[] list = name.split("\\.");
+        StringBuffer result =
+                ( list.length == 0 ? new StringBuffer("'$" + name + "'") : new StringBuffer("'$" + list[0] + "'"));
         int length = list.length;
         for(int i = 1; i < length; i++)
             result.append(".'" + list[i] + "'");
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
index f647bde834c2a1ee815cb00a15c8084dba6190f0..84378fbeb7daf8c70e83fc73eaf03d555fd2b9cf 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
@@ -85,6 +85,7 @@ public class AvatarFromSysML {
             e.printStackTrace(out);
             return new AvatarSpecification("DummySpec", null);
         }
+        if (stxSpec == null) return new AvatarSpecification("DummySpec", null);
         errors = stxSpec.getErrors();
         avSpec = new AvatarSpecification("FromSysMLV2_EXAMPLE_SPECIFICATION",null);
         transitionList.clear();
@@ -118,7 +119,7 @@ public class AvatarFromSysML {
         return b;
     }
     private AvatarAttribute getAttributeByName(String _name, AvatarBlock _block) {
-        List<AvatarAttribute> l = _block.getAttributes();
+        List<AvatarAttribute> l = _block.getOriginalAttributes();
         int size = l.size();
         for (int i = 0; i < size; i++)
             if(l.get(i).getName().equals(_name)) return  l.get(i);
diff --git a/src/main/java/ui/AvatarPanelDrawer.java b/src/main/java/ui/AvatarPanelDrawer.java
index 176e17608ae15e2f23c5fc272de97d495c44c4fa..c81f55d018153b2e92bb3bd1d12a9d0a9bf1f935 100644
--- a/src/main/java/ui/AvatarPanelDrawer.java
+++ b/src/main/java/ui/AvatarPanelDrawer.java
@@ -259,12 +259,13 @@ public class AvatarPanelDrawer {
                         p = new Point(p2.getX(), p2.getY() - 10);
                         points.add(p);
                     }*/
-
-					for (int i = 0; i < ar.getOtherReferenceObjects().size(); i++) {
-						Object o = ar.getOtherReferenceObjects().get(i);
-						if (o instanceof TGCPointOfConnector) {
-							TGCPointOfConnector op = (TGCPointOfConnector) o;
-							points.add(new Point(op.getX(), op.getY()));
+					if (ar.getOtherReferenceObjects() != null) {
+						for (int i = 0; i < ar.getOtherReferenceObjects().size(); i++) {
+							Object o = ar.getOtherReferenceObjects().get(i);
+							if (o instanceof TGCPointOfConnector) {
+								TGCPointOfConnector op = (TGCPointOfConnector) o;
+								points.add(new Point(op.getX(), op.getY()));
+							}
 						}
 					}