diff --git a/src/common/Session.cpp b/src/common/Session.cpp
index dd01b1e..26b6ed9 100644
--- a/src/common/Session.cpp
+++ b/src/common/Session.cpp
@@ -22,6 +22,8 @@
 #include <QFileInfo>
 #include <QTextStream>
 
+#include <unistd.h>
+
 #include "Configuration.h"
 #include "Session.h"
 
@@ -42,6 +44,13 @@ namespace SDDM {
         setTo(type, fileName);
     }
 
+    Session::~Session()
+    {
+        if (m_vt != -1) {
+            ::close(m_vt);
+        }
+    }
+
     bool Session::isValid() const
     {
         return m_valid;
diff --git a/src/common/Session.h b/src/common/Session.h
index d285a3f..1c5bcc0 100644
--- a/src/common/Session.h
+++ b/src/common/Session.h
@@ -37,6 +37,7 @@ namespace SDDM {
 
         explicit Session();
         Session(Type type, const QString &fileName);
+        ~Session();
 
         bool isValid() const;
 
@@ -69,7 +70,7 @@ namespace SDDM {
     private:
         bool m_valid;
         Type m_type;
-        int m_vt;
+        int m_vt = -1;
         QDir m_dir;
         QString m_name;
         QString m_fileName;
diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
index 11124e5..e2cfb40 100644
--- a/src/daemon/Display.cpp
+++ b/src/daemon/Display.cpp
@@ -323,7 +323,7 @@ namespace SDDM {
                 vt = VirtualTerminal::setUpNewVt();
             m_lastSession.setVt(vt);
             env.insert(QStringLiteral("XDG_VTNR"), QString::number(vt));
-	}
+        }
 
         env.insert(QStringLiteral("PATH"), mainConfig.Users.DefaultPath.get());
         if (session.xdgSessionType() == QLatin1String("x11"))
diff --git a/src/helper/HelperApp.cpp b/src/helper/HelperApp.cpp
index cad93bd..3079c4e 100644
--- a/src/helper/HelperApp.cpp
+++ b/src/helper/HelperApp.cpp
@@ -176,6 +176,8 @@ namespace SDDM {
     }
 
     void HelperApp::sessionFinished(int status) {
+        qCritical() << "bernie: sessuionFinished() status=" << status;
+
         m_backend->closeSession();
 
         // write logout to utmp/wtmp
