diff --git a/ui/cleanup.sh b/ui/cleanup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8a0fb39c85043bf58d2995f46489dfd73e08d8d6
--- /dev/null
+++ b/ui/cleanup.sh
@@ -0,0 +1,14 @@
+rm clone/Makefile
+rm editor/Makefile
+rm esmchecker/Makefile
+rm esmeditor/Makefile
+rm esmscheduler/Makefile
+rm esmtopdf/Makefile
+rm esmtosmi/Makefile
+rm esmtotaskspec/Makefile
+rm Makefile
+rm model/Makefile
+rm taskinfocodegen/Makefile
+qtchooser -run-tool=qmake -qt=4
+
+ 
diff --git a/ui/editor/actionlistwidget.cc b/ui/editor/actionlistwidget.cc
index 9ce490d5d0f7fe2ca293bbae103986c5d4152c07..ba0b97682a388b627f7018560daee3a0cdfb6560 100644
--- a/ui/editor/actionlistwidget.cc
+++ b/ui/editor/actionlistwidget.cc
@@ -18,6 +18,7 @@
  */
 
 #include <QtGui>
+#include <QMenu>
 
 #include "actionlistwidget.h"
 #include "actioninfoitem.h"
diff --git a/ui/editor/commentitemdialog.cc b/ui/editor/commentitemdialog.cc
index e0a40bad6490244e94db927b72c7ac4ddb01b221..aca25d8c32e2d0929379aa5104ddfbe7f44253ed 100644
--- a/ui/editor/commentitemdialog.cc
+++ b/ui/editor/commentitemdialog.cc
@@ -18,6 +18,11 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
 
 #include <iostream>
 
diff --git a/ui/editor/containerdialog.cc b/ui/editor/containerdialog.cc
index 9b51bcf01a974c951f7155167ff469868c3da8c5..ba11da8c364d92055083545828aaf69c69e75aa4 100644
--- a/ui/editor/containerdialog.cc
+++ b/ui/editor/containerdialog.cc
@@ -18,6 +18,11 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
 
 #include "containerdialog.h"
 #include "uuidnameitem.h"
diff --git a/ui/editor/createdatastoragedialog.cc b/ui/editor/createdatastoragedialog.cc
index 634b0ea3efe9346a0ecd696258db2155e89ab6e7..ce95e95d107ef6e321079e553e56bc8307c95379 100644
--- a/ui/editor/createdatastoragedialog.cc
+++ b/ui/editor/createdatastoragedialog.cc
@@ -18,6 +18,11 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
 
 #include <iostream>
 
diff --git a/ui/editor/createeventdialog.cc b/ui/editor/createeventdialog.cc
index 8986390aed28f60aae8d104dfca625120bd426fb..2b590f021299e73563e025c07ed0dbab869026e3 100644
--- a/ui/editor/createeventdialog.cc
+++ b/ui/editor/createeventdialog.cc
@@ -18,6 +18,11 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
 
 #include <iostream>
 
diff --git a/ui/editor/datastoragedialog.cc b/ui/editor/datastoragedialog.cc
index cbebddde26c2d1ec4ba8db283510d391670558ba..3370d270872fd45efd8122afcf1e5ce2952ddec0 100644
--- a/ui/editor/datastoragedialog.cc
+++ b/ui/editor/datastoragedialog.cc
@@ -18,6 +18,11 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
 
 #include <iostream>
 
diff --git a/ui/editor/datastorageitemdialog.cc b/ui/editor/datastorageitemdialog.cc
index c7bea33023ace15f7d926815576c3c0e7e2f977c..d95bfa377e7bb6dd210536d8660fe677db0597a2 100644
--- a/ui/editor/datastorageitemdialog.cc
+++ b/ui/editor/datastorageitemdialog.cc
@@ -18,6 +18,12 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
 
 #include <iostream>
 #include <algorithm>
diff --git a/ui/editor/editor.pro b/ui/editor/editor.pro
index 15da060d3bf311643ab5ef2edb5677a40b96b6fb..bbce8b0eb673649b1f2b3f3719a108dbf8534e8e 100644
--- a/ui/editor/editor.pro
+++ b/ui/editor/editor.pro
@@ -100,6 +100,8 @@ SOURCES += uuidnameaction.cc
 
 QT += xml
 QT += network
+QT += widgets
+QT += printsupport
 
 INCLUDEPATH += ../model
 
diff --git a/ui/editor/eventdialog.cc b/ui/editor/eventdialog.cc
index 517677aeff23c58876a4ee4ae90698dc0140ed87..356bc21946e607414eb9e8542a9ccf6201968be3 100644
--- a/ui/editor/eventdialog.cc
+++ b/ui/editor/eventdialog.cc
@@ -18,6 +18,12 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
 
 #include <iostream>
 
diff --git a/ui/editor/flagdialog.cc b/ui/editor/flagdialog.cc
index d7aeeb2da60562961ec3cbd82e3445c046212f86..00bc16dd367d67361defcdb6702c05398df19951 100644
--- a/ui/editor/flagdialog.cc
+++ b/ui/editor/flagdialog.cc
@@ -18,6 +18,12 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
 
 #include <iostream>
 
diff --git a/ui/editor/flagstatedialog.cc b/ui/editor/flagstatedialog.cc
index 5487804540692003f1b8693a382c5aacfbc7bc21..db6c4f2284ba7ef521382e07a2006cd382a1355e 100644
--- a/ui/editor/flagstatedialog.cc
+++ b/ui/editor/flagstatedialog.cc
@@ -18,6 +18,12 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
 
 #include <iostream>
 
diff --git a/ui/editor/formulalabel.cc b/ui/editor/formulalabel.cc
index 46feeb753f0c25fc81c80868af3b3760d41a3261..781ee44ee1940d64b85b38aef5fd44ef29fc5771 100644
--- a/ui/editor/formulalabel.cc
+++ b/ui/editor/formulalabel.cc
@@ -18,6 +18,12 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
 
 #include "formulalabel.h"
 #include "transitiondialog.h"
diff --git a/ui/editor/mainwindow.cc b/ui/editor/mainwindow.cc
index fc9ea2504fdebb67559a65e4c453efb4196940e6..e62b1c031f6fd9927967f4a4cbd5c40a6264040b 100644
--- a/ui/editor/mainwindow.cc
+++ b/ui/editor/mainwindow.cc
@@ -18,6 +18,24 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
+#include <QPrinter>
 
 #include "mainwindow.h"
 #include "statedialog.h"
@@ -865,11 +883,12 @@ void MainWindow::load (std::string filename, std::string mifilename,
   EsmContainer * cont = new EsmContainer ();
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc(&file);
   EsmSaxHandler handler (cont);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   cont->set_filename (filename);
 
@@ -1032,10 +1051,11 @@ void MainWindow::check_save_and_load () {
   assert (file.exists());
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc(&file);
   EsmSaxHandler handler (root);
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   ofstream os2 ("save-2.xml");
   os2 <<  *root << endl;
diff --git a/ui/editor/mylistwidget.cc b/ui/editor/mylistwidget.cc
index 13903e2b1ea4943bf976f5943b231dcc82ebbeb7..6deee2b3bca5a59663b332e348e988c8bb7c8106 100644
--- a/ui/editor/mylistwidget.cc
+++ b/ui/editor/mylistwidget.cc
@@ -18,6 +18,7 @@
  */
 
 #include <QtGui>
+#include <QAction>
 
 #include "mylistwidget.h"
 #include "uuidnameitem.h"
diff --git a/ui/editor/myreflistwidget.cc b/ui/editor/myreflistwidget.cc
index e11bac910db6e829829892f1e68f531ec801f0f7..8345ed5fa93981dd47921d45b91c25f7914c2d10 100644
--- a/ui/editor/myreflistwidget.cc
+++ b/ui/editor/myreflistwidget.cc
@@ -18,6 +18,7 @@
  */
 
 #include <QtGui>
+#include <QMenu>
 
 #include "myreflistwidget.h"
 #include "uuidnameitem.h"
diff --git a/ui/editor/portdialog.cc b/ui/editor/portdialog.cc
index e96749ef57adddf09acc12fd8cf1b4921559050f..feff698f39c6c73bf61805776bc5ea544389340f 100644
--- a/ui/editor/portdialog.cc
+++ b/ui/editor/portdialog.cc
@@ -18,6 +18,23 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include "portdialog.h"
 
diff --git a/ui/editor/scene.cc b/ui/editor/scene.cc
index dae65077b9335f47e4931a6f25329d5c4bef7661..c058724928bbe8321898f589bf4587717cc187a3 100644
--- a/ui/editor/scene.cc
+++ b/ui/editor/scene.cc
@@ -18,6 +18,24 @@
  */
 
 #include <QtGui>
+#include <QGraphicsSceneMoveEvent>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include "scene.h"
 #include "transitionarrow.h"
diff --git a/ui/editor/statedialog.cc b/ui/editor/statedialog.cc
index eebd872916b546bf39c96df139f52fd8bdb41e55..16879bf5c5e58ff0e84c686d21acba02aafac776 100644
--- a/ui/editor/statedialog.cc
+++ b/ui/editor/statedialog.cc
@@ -18,6 +18,23 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include "statedialog.h"
 
diff --git a/ui/editor/superstatedialog.cc b/ui/editor/superstatedialog.cc
index cbdf9fb4fb1b6ed0a6d04be33a49418c51228eb2..03ea932d705e719299f9a8bffb376a34bbc6c542 100644
--- a/ui/editor/superstatedialog.cc
+++ b/ui/editor/superstatedialog.cc
@@ -18,6 +18,23 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include "superstatedialog.h"
 #include "uuidnameitem.h"
@@ -153,11 +170,12 @@ void SuperStateDialog::default_instatiation_clicked() {
   EsmContainer * cont = new EsmContainer ();
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc(&file);
   EsmSaxHandler handler (cont);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  if (reader.parse(&file)) {
+  if (reader.parse(&xmlSrc)) {
 
     set_name (cont->get_name());
 
diff --git a/ui/editor/taskstatedialog.cc b/ui/editor/taskstatedialog.cc
index c97e67528887254a92d665fc533cd264e384605e..d23788c669aaa259dfd2a57a0daebf68052d0647 100644
--- a/ui/editor/taskstatedialog.cc
+++ b/ui/editor/taskstatedialog.cc
@@ -18,6 +18,23 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include "taskstatedialog.h"
 
diff --git a/ui/editor/transitiondialog.cc b/ui/editor/transitiondialog.cc
index 1b0917cbc3b3390eae8afdac67254bb8dfbfb331..97ef88a918005396b44ea8eb013e93016857b2cb 100644
--- a/ui/editor/transitiondialog.cc
+++ b/ui/editor/transitiondialog.cc
@@ -18,6 +18,23 @@
  */
 
 #include <QtGui>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QGraphicsView>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QMenuBar>
+#include <QPushButton>
+#include <QButtonGroup>
+#include <QToolBox>
+#include <QToolBar>
+#include <QToolButton>
+#include <QComboBox>
+#include <QFileDialog>
 
 #include <iostream>
 #include <algorithm>
diff --git a/ui/esmeditor/esmeditor.pro b/ui/esmeditor/esmeditor.pro
index c96a044bf2e1842c9c9f03b0e670e5288088a1f1..ef8772b418e3b31c7d55314ad228de41ac0bb36d 100644
--- a/ui/esmeditor/esmeditor.pro
+++ b/ui/esmeditor/esmeditor.pro
@@ -4,8 +4,10 @@ TARGET = esmeditor
 
 SOURCES += main.cc
 
+QT += widgets
 QT += xml
 QT += network
+QT += printsupport
 
 RESOURCES   =   esmeditor.qrc
 
diff --git a/ui/esmeditor/main.cc b/ui/esmeditor/main.cc
index bdf24b4bf5fe0e8c5fa331afab76aa96749e859f..606aab5412d683815abbf712a225c82bb2573652 100644
--- a/ui/esmeditor/main.cc
+++ b/ui/esmeditor/main.cc
@@ -18,6 +18,8 @@
  */
 
 #include <QtGui>
+#include <QApplication>
+#include <QDesktopWidget>
 
 #include <iostream>
 
diff --git a/ui/esmscheduler/slotspec.cc b/ui/esmscheduler/slotspec.cc
index 218f5e132b0824a9edccc2413164476710dc9ecc..cd417cf10802ddf818b4f627732898657bc6ea0d 100644
--- a/ui/esmscheduler/slotspec.cc
+++ b/ui/esmscheduler/slotspec.cc
@@ -58,12 +58,13 @@ bool SlotSpec::load (string filename) {
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
 
   SlotSpecSaxHandler handler (this);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   return true;
 }
diff --git a/ui/esmtopdf/esmtopdf.pro b/ui/esmtopdf/esmtopdf.pro
index fb6d25a9c09c3208722dd4c912ef407e82785ab0..4f7627c5dc7bf96066ce8b96616273cefbc42a0c 100644
--- a/ui/esmtopdf/esmtopdf.pro
+++ b/ui/esmtopdf/esmtopdf.pro
@@ -6,8 +6,10 @@ HEADERS += ../editor/scene.h
 SOURCES += main.cc
 SOURCES += ../editor/scene.cc
 
+QT += widgets
 QT += xml
 QT += network
+QT += printsupport
 
 LIBS += -L../editor -leditor
 LIBS += -L../model -lmodel
diff --git a/ui/esmtopdf/main.cc b/ui/esmtopdf/main.cc
index 050678613282bad93149d361684f6e11d1ec93ca..7f861384e69e825dc900a26296bb90192e03cd7a 100644
--- a/ui/esmtopdf/main.cc
+++ b/ui/esmtopdf/main.cc
@@ -77,11 +77,12 @@ int main(int argv, char *args[]) {
   EsmContainer * cont = new EsmContainer ();
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc(&file);
   EsmSaxHandler handler (cont);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   cont->set_filename (esmfilename);
 
diff --git a/ui/model/esmcontainer.cc b/ui/model/esmcontainer.cc
index ad2a05dfe784db7afff8640514dedd51bad389c4..83531ba8145ff1c272cd10c8e60a2a71d61f1580 100644
--- a/ui/model/esmcontainer.cc
+++ b/ui/model/esmcontainer.cc
@@ -61,11 +61,12 @@ EsmContainer::EsmContainer(std::string _filename) :
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
   EsmSaxHandler handler (this);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  initialized_from_file_flag = reader.parse(&file);
+  initialized_from_file_flag = reader.parse(&xmlSrc, false);
 
   if (!initialized_from_file_flag) {
     cerr << "EsmContainer:: Failed to read file: " << _filename << endl;
diff --git a/ui/model/esmevent.cc b/ui/model/esmevent.cc
index 4c5ac0d1899cc652dd7097d0f3057aabe9102a68..dde1355bed980c4ce309ca075132782f1f3593a2 100644
--- a/ui/model/esmevent.cc
+++ b/ui/model/esmevent.cc
@@ -19,6 +19,8 @@
 
 #include "esmevent.h"
 
+#include <iostream>
+
 EsmEvent::EsmEvent () : EsmNamed(), pulse_event_flag(false) {
 
 }
@@ -56,6 +58,7 @@ std::ostream& operator<<(std::ostream& os, const EsmEvent& data) {
   }
   os << " comment=\"" << data.get_comment () << "\"";
   os << "/>";
+
   return os;
 }
 
diff --git a/ui/model/esmflag.cc b/ui/model/esmflag.cc
index 2194f722aadf5d12808f0e941554180a3b49a1f2..bfcd4edd4606a3d8b124945e7361f5dbc7ed6673 100644
--- a/ui/model/esmflag.cc
+++ b/ui/model/esmflag.cc
@@ -76,10 +76,10 @@ bool EsmFlag::get_container_flag () {
 
 
 std::ostream& operator<<(std::ostream& os, const EsmFlag& data) {
-  os << "    <flag";
-  os << " uuid=\"" << data.get_uuid_str () << "\"";
-  os << " name=\"" << data.get_name () << "\"";
-  os << " comment=\"" << data.get_comment () << "\"";
+  os << std::string("    <flag");
+  os << std::string(" uuid=\"") << data.get_uuid_str () << std::string("\"");
+  os << std::string(" name=\"") << data.get_name () << std::string("\"");
+  os << std::string(" comment=\"") << data.get_comment () << std::string("\"");
   string type_str = "user_defined";
   if (data.type == EsmFlag::flag_exit) {
     type_str = "exit";
@@ -90,8 +90,8 @@ std::ostream& operator<<(std::ostream& os, const EsmFlag& data) {
   if (data.type == EsmFlag::flag_timeout) {
     type_str = "timeout";
   }
-  os << " type=\"" << type_str << "\"";
-  os << "/>";
+  os << std::string(" type=\"") << type_str << std::string("\"");
+  os << std::string("/>");
   return os;
 }
 
diff --git a/ui/model/esmsaxhandler.cc b/ui/model/esmsaxhandler.cc
index 619dc6f3d15cfa059ad1dc83f0570a4ad0a857d2..d5c23e37a592763b6802cb793154041b15c1b718 100644
--- a/ui/model/esmsaxhandler.cc
+++ b/ui/model/esmsaxhandler.cc
@@ -78,7 +78,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   }
 
   if (qName == "data-storage") {
-    root->create_data_storage (get_uuid (attribs.value ("uuid")), attribs.value ("name"));
+    root->create_data_storage (get_uuid (attribs.value ("uuid")).toString(), attribs.value ("name"));
   }
 
   if (qName == "input-ports") {
@@ -152,7 +152,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
 
   if (qName == "event") {
     if (state == inside_global_events) {
-      root->init_pulse_event (get_uuid (attribs.value ("uuid")), attribs.value ("comment"));
+      root->init_pulse_event (get_uuid (attribs.value ("uuid")).toString(), attribs.value ("comment"));
     } else {
       // Hack workaround for Piotr event bug
       std::vector<EsmEvent *> cevents = root->get_container_events ();
@@ -387,7 +387,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   if (qName == "initial-state") {
     inside_initial_state_flag = true;
     EsmInitialState * state = new EsmInitialState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_qname (attribs.value ("name"));
     state->set_qcomment (attribs.value ("comment"));
     state->set_timeout (attribs.value ("timeout").toInt ());
@@ -407,7 +407,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   if (qName == "simple-state") {
     inside_simple_state_flag = true;
     EsmBasicState * state = new EsmBasicState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_qname (attribs.value ("name"));
     state->set_qcomment (attribs.value ("comment"));
     state->set_timeout (attribs.value ("timeout").toInt ());
@@ -427,7 +427,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   if (qName == "basic-state") {
     inside_simple_state_flag = true;
     EsmBasicState * state = new EsmBasicState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_qname (attribs.value ("name"));
     state->set_qcomment (attribs.value ("comment"));
     state->set_timeout (attribs.value ("timeout").toInt ());
@@ -446,7 +446,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
 
   if (qName == "final-state") {
     EsmFinalState * state = new EsmFinalState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_qname (attribs.value ("name"));
     state->set_qcomment (attribs.value ("comment"));
     state->set_timeout (attribs.value ("timeout").toInt ());
@@ -465,7 +465,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   if (qName == "task-state") {
     inside_task_state_flag = true;
     EsmTaskState * state = new EsmTaskState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_qname (attribs.value ("name"));
     state->set_qcomment (attribs.value ("comment"));
     state->set_timeout (attribs.value ("timeout").toInt ());
@@ -497,7 +497,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
   if (qName == "super-state") {
     inside_super_state_flag = true;
     EsmSuperState * state = new EsmSuperState ();
-    state->set_uuid (get_uuid (attribs.value ("uuid")));
+    state->set_uuid (get_uuid (attribs.value ("uuid")).toString());
     state->set_cloned_from_uuid (attribs.value ("cloned-from-uuid").toStdString());
     state->set_path_string (attribs.value ("path-string").toStdString());
     QString name = attribs.value ("name");
@@ -526,7 +526,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
     string evname = attribs.value ("event-uuid").toStdString();
     if (verbose) cerr << "Event: " <<  evname << endl;
     EsmUuid * uuid = 
-      root->qstr_to_uuid (get_uuid (attribs.value ("event-uuid")));
+      root->qstr_to_uuid (get_uuid (attribs.value ("event-uuid")).toString());
     //    assert (uuid);
     EsmEvent * event = dynamic_cast<EsmEvent *>(uuid);
     if (!event) {
@@ -535,7 +535,7 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
     //    if (event) {
       if (verbose) cerr << "TRANSITION: " << attribs.value ("uuid").toStdString () << endl;
       EsmTransition * trans = 
-	new EsmTransition (get_uuid (attribs.value ("uuid")));
+    new EsmTransition (get_uuid (attribs.value ("uuid")).toString());
       if (verbose) 
 	cerr << "transition: " << attribs.value ("uuid").toStdString() << " - " 
 	     << uuidtostr[attribs.value ("uuid")].toStdString()<< endl;
@@ -543,10 +543,10 @@ bool EsmSaxHandler::startElement(const QString &namespaceURI,
       trans->set_container (root);
       trans->set_event (event);
       current_region->add_transition (trans);
-      EsmUuid * from_uuid = root->qstr_to_uuid (get_uuid (attribs.value ("from-state-uuid")));
+      EsmUuid * from_uuid = root->qstr_to_uuid (get_uuid (attribs.value ("from-state-uuid")).toString());
       // 0 allowed, meand not connected...
 						
-      EsmUuid * to_uuid = root->qstr_to_uuid (get_uuid (attribs.value ("to-state-uuid")));
+      EsmUuid * to_uuid = root->qstr_to_uuid (get_uuid (attribs.value ("to-state-uuid")).toString());
       // 0 allowed, meand not connected...
       trans->set_from_state (dynamic_cast<EsmState*>(from_uuid));
       trans->set_to_state (dynamic_cast<EsmState*>(to_uuid));
diff --git a/ui/model/modelinfo.cc b/ui/model/modelinfo.cc
index 1f9e55a781eece7012f5c4ce793c74fd80060177..d808447e70e0cfb27200aeaa6fe477cfcbaa5e58 100644
--- a/ui/model/modelinfo.cc
+++ b/ui/model/modelinfo.cc
@@ -135,12 +135,13 @@ bool ModelInfo::load (string filename) {
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
 
   ModelInfoSaxHandler handler (this);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   return true;
 }
diff --git a/ui/model/slotmap.cc b/ui/model/slotmap.cc
index 2055d6989151c9b56187d593fd10bd510f9d7fb2..276b70db6f1107e038f1c39ad3d93401d82bb52d 100644
--- a/ui/model/slotmap.cc
+++ b/ui/model/slotmap.cc
@@ -57,12 +57,13 @@ bool SlotMap::load (string filename) {
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
 
   SlotMapSaxHandler handler (this);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   return true;
 }
diff --git a/ui/model/slotsched.cc b/ui/model/slotsched.cc
index 96fe04201149a18569532425d651020942f8b64d..9dbdb906ebf64f6fd9d524fa65363fa1e98afc57 100644
--- a/ui/model/slotsched.cc
+++ b/ui/model/slotsched.cc
@@ -56,12 +56,13 @@ bool SlotSched::load (string filename) {
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
 
   SlotSchedSaxHandler handler (this);
 
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
-  reader.parse(&file);
+  reader.parse(&xmlSrc);
 
   return true;
 }
diff --git a/ui/model/taskdeclaration.cc b/ui/model/taskdeclaration.cc
index cdfb071f869f53e23ce43ccfa42e8b0091f86a52..a47e6039ea570f97aa046718f9b96a910db88e57 100644
--- a/ui/model/taskdeclaration.cc
+++ b/ui/model/taskdeclaration.cc
@@ -115,6 +115,7 @@ bool TaskDeclaration::load (string filename) {
   }
 
   QXmlSimpleReader reader;
+  QXmlInputSource xmlSrc (&file);
   //  QtLibxmlReader reader;
 
   TaskDeclarationSaxHandler handler (this);
@@ -122,7 +123,7 @@ bool TaskDeclaration::load (string filename) {
   reader.setContentHandler(&handler);
   reader.setErrorHandler(&handler);
   reader.setEntityResolver(&handler);
-  return reader.parse(&file);
+  return reader.parse(&xmlSrc);
 }
 
 int TaskDeclaration::get_duration (std::string name) {