diff --git a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp
index bb9b0ea163561b2fd7fc3af9cc2d3c1106682134..fa68bffaeb2a6c42a2370757f7288f621af6ae77 100644
--- a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp
+++ b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp
@@ -35,6 +35,10 @@ JsonValue::JsonValue(int value)
     : type(eNumber), value(ToString(value))
 { }
 
+JsonValue::JsonValue(long value)
+    : type(eNumber), value(ToString(value))
+{ }
+
 JsonValue::JsonValue(float value)
     : type(eNumber), value(ToString(value))
 { }
@@ -59,6 +63,36 @@ JsonValuePtr JsonValue::False()
     return value;
 }
 
+JsonValuePtr JsonValue::Create(const std::string& value)
+{
+    JsonValuePtr jsonValue(new JsonValue(value));
+    return jsonValue;
+}
+
+JsonValuePtr JsonValue::Create(int value)
+{
+    JsonValuePtr jsonValue(new JsonValue(value));
+    return jsonValue;
+}
+
+JsonValuePtr JsonValue::Create(long value)
+{
+    JsonValuePtr jsonValue(new JsonValue(value));
+    return jsonValue;
+}
+
+JsonValuePtr JsonValue::Create(float value)
+{
+    JsonValuePtr jsonValue(new JsonValue(value));
+    return jsonValue;
+}
+
+JsonValuePtr JsonValue::Create(double value)
+{
+    JsonValuePtr jsonValue(new JsonValue(value));
+    return jsonValue;
+}
+
 JsonValuePtr JsonValue::CreateRaw(JsonValue::Type type, const std::string& value)
 {
     if (!CheckValue(type, value))
@@ -142,6 +176,14 @@ std::string JsonValue::ToString(int value)
     return oss.str();
 }
 
+std::string JsonValue::ToString(long value)
+{
+    std::ostringstream oss;
+    oss.imbue(std::locale::classic());
+    oss << value;
+    return oss.str();
+}
+
 std::string JsonValue::ToString(float value)
 {
     std::ostringstream oss;
diff --git a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h
index fd6f5bb3aa4024b52788aaf22351c54671336217..6e0d5bf00c339d37fa0a34092484ee2a5d78cd97 100644
--- a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h
+++ b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h
@@ -40,12 +40,18 @@ namespace armarx
 
         JsonValue(const std::string& value);
         JsonValue(int value);
+        JsonValue(long value);
         JsonValue(float value);
         JsonValue(double value);
 
         static JsonValuePtr Null();
         static JsonValuePtr True();
         static JsonValuePtr False();
+        static JsonValuePtr Create(const std::string& value);
+        static JsonValuePtr Create(int value);
+        static JsonValuePtr Create(long value);
+        static JsonValuePtr Create(float value);
+        static JsonValuePtr Create(double value);
 
         static JsonValuePtr CreateRaw(Type type, const std::string& value);
         static bool CheckValue(Type type, const std::string& value);
@@ -55,11 +61,13 @@ namespace armarx
         static bool CheckBool(const std::string& value);
         static bool CheckNull(const std::string& value);
 
+
         void writeJson(const JsonWriterPtr& writer);
 
         JsonValuePtr toSharedPtr() const;
 
         static std::string ToString(int value);
+        static std::string ToString(long value);
         static std::string ToString(float value);
         static std::string ToString(double value);