diff --git a/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.cpp b/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.cpp
index e5c869a89795a9d0bad0c20f0c95b94d9538f3a3..63f5e94873cde0d91a11d6c3c8213ff6a074f206 100644
--- a/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.cpp
+++ b/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.cpp
@@ -23,17 +23,20 @@
 
 #include "ArmarXGuiApp.h"
 
+#include <iostream>
+#include <optional>
+
+#include <QHostInfo>
 #include <QListWidget>
 #include <QMessageBox>
-#include <QTime>
 #include <QTextCodec>
-#include <iostream>
+#include <QTime>
 
-#include <ArmarXCore/util/CPPUtility/trace.h>
-#include <ArmarXCore/core/util/StringHelpers.h>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
-#include <IceUtil/UUID.h>
-#include <QHostInfo>
+#include <ArmarXCore/core/util/StringHelpers.h>
+#include <ArmarXCore/core/time/DateTime.h>
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 
 namespace armarx
@@ -41,6 +44,18 @@ namespace armarx
     int ArmarXGuiApp::globalargc = 0;
 
 
+    ArmarXGuiAppPropertyDefinitions::ArmarXGuiAppPropertyDefinitions(std::string prefix) :
+        ApplicationPropertyDefinitions(prefix)
+    {
+        defineOptionalProperty<std::string>(
+                    "LoadPlugins", "", "List of paths to GuiPlugin-Libs (semi-colon seperated)");
+        defineOptionalProperty<std::string>(
+                    "GuiConfigFile", "", "Path to config file, that should be loaded on startup");
+        defineOptionalProperty<bool>(
+                    "DisablePreloading", false, "Disables the preloading of widgets. Can be helpful if some preloaded widget crashes the gui.");
+    }
+
+
     ArmarXGuiApp::ArmarXGuiApp(int& argc, char** argv) :
         qApplication(nullptr), argc(argc), argv(argv)
     {
@@ -77,7 +92,7 @@ namespace armarx
                 return 1;
             }
         }
-        setName("ArmarXGui-" + std::to_string(IceUtil::Time::now().toMilliSeconds()));
+        setName(makeName());
         return armarx::Application::run(argc, argv);
     }
 
@@ -198,6 +213,42 @@ namespace armarx
     }
 
 
+    static QString getUserName()
+    {
+        QString username = qgetenv("USER");
+        if (username.isEmpty())
+        {
+            username = qgetenv("USERNAME");
+        }
+        return username;
+    }
+
+
+    static QString getUserNameAtHostName()
+    {
+        const QString hostname = QHostInfo::localHostName();
+        QString user = getUserName();
+        if (user.isEmpty())
+        {
+            return hostname;
+        }
+        else
+        {
+            return user + "@" + hostname;
+        }
+    }
+
+    std::string ArmarXGuiApp::makeName()
+    {
+        std::vector<std::string> items { "ArmarXGui" };
+        items.push_back(getUserNameAtHostName().toStdString());
+        items.push_back(DateTime::Now().toDateTimeString());
+
+        std::string name = simox::alg::join(items, "_");
+
+        return name;
+    }
+
 
     bool ArmarXQApplication::notify(QObject* obj, QEvent* ev)
     {
@@ -247,12 +298,7 @@ namespace armarx
         const auto guiWindowBaseName = QString{"ArmarX"} + " @ " + QHostInfo::localHostName();
         setApplicationName(guiWindowBaseName);
 
-        QString username = qgetenv("USER");
-        if (username.isEmpty())
-        {
-            username = qgetenv("USERNAME");
-        }
-        setApplicationDisplayName(username + "@" + QHostInfo::localHostName());
+        setApplicationDisplayName(getUserNameAtHostName());
 
         connect(this, SIGNAL(exceptionCaught(QString)), this, SLOT(showException(QString)), Qt::QueuedConnection);
         exceptionDialogHandler.setupUi(&exceptionDialog);
@@ -263,4 +309,5 @@ namespace armarx
     ArmarXQApplication::~ArmarXQApplication()
     {
     }
+
 }
diff --git a/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.h b/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.h
index dd462eb45fec80dacc17c63b8eaaff1efe7becce..99998cb83406455e91d4060e5b393ce40f11afce 100644
--- a/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.h
+++ b/source/ArmarXGui/applications/ArmarXGui/ArmarXGuiApp.h
@@ -52,15 +52,10 @@ namespace armarx
         public ApplicationPropertyDefinitions
     {
     public:
-        ArmarXGuiAppPropertyDefinitions(std::string prefix):
-            ApplicationPropertyDefinitions(prefix)
-        {
-            defineOptionalProperty<std::string>("LoadPlugins", "", "List of paths to GuiPlugin-Libs (semi-colon seperated)");
-            defineOptionalProperty<std::string>("GuiConfigFile", "", "Path to config file, that should be loaded on startup");
-            defineOptionalProperty<bool>("DisablePreloading", false, "Disables the preloading of widgets. Can be helpful if some preloaded widget crashes the gui.");
-        }
+        ArmarXGuiAppPropertyDefinitions(std::string prefix);
     };
 
+
     class ArmarXQApplication :
         public  QApplication
     {
@@ -128,9 +123,11 @@ namespace armarx
         void closeRequest_sent();
 
     private:
+        static std::string makeName();
         void runArmarXManager();
         int startArmarX();
 
+    private:
         RunningTask<ArmarXGuiApp>::pointer_type armarxManagerTask;
         ArmarXQApplication* qApplication;
         ArmarXMainWindow* mainWindow;