Index: run.py
===================================================================
--- run.py	(revision 7c105e8be85f8686d7808e51eb16d79bb96fdda9)
+++ run.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -1,5 +1,4 @@
 # -*- coding: utf-8 -*-
 #!/usr/bin/env python
-
 """
 Run sasview in place.  This allows sasview to use the python
@@ -15,4 +14,5 @@
 the given module or script.
 """
+from __future__ import print_function
 
 import imp
Index: src/sas/sasgui/__init__.py
===================================================================
--- src/sas/sasgui/__init__.py	(revision 3aa2f3c125b599a9852457e58e79f6e64a3d44dc)
+++ src/sas/sasgui/__init__.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -47,11 +47,7 @@
 
 def get_app_dir():
-    if APP_FOLDER is None:
-        raise RuntimeError("Need to initialize sas.sasgui.USER_FOLDER")
     return APP_FOLDER
 
 def get_user_dir():
-    if USER_FOLDER is None:
-        raise RuntimeError("Need to initialize sas.sasgui.USER_FOLDER")
     return USER_FOLDER
 
@@ -74,6 +70,6 @@
     import os
     import sys
-    import imp
     import logging
+    from sasmodels.custom import load_module_from_path
 
     logger = logging.getLogger(__name__)
@@ -81,19 +77,9 @@
     filename = 'local_config.py'
     path = os.path.join(dirname, filename)
-    if os.path.exists(path):
-        try:
-            fObj = None
-            fObj, config_path, descr = imp.find_module('local_config', [APP_FOLDER])
-            config = imp.load_module('local_config', fObj, config_path, descr)
-            logger.info("GuiManager loaded %s" % config_path)
-            return config
-        except Exception:
-            import traceback; logger.error(traceback.format_exc())
-            logger.error("Error loading %s: %s" % (path, sys.exc_value))
-        finally:
-            if fObj is not None:
-                fObj.close()
-    from sas.sasgui.guiframe import config
-    logger.info("GuiManager config defaults to sas.sasgui.guiframe")
-    return config
-
+    try:
+        module = load_module_from_path('sas.sasgui.local_config', path)
+        logger.info("GuiManager loaded %s", path)
+        return module
+    except Exception as exc:
+        logger.critical("Error loading %s: %s", path, exc)
+        sys.exit()
Index: src/sas/sasgui/guiframe/config.py
===================================================================
--- src/sas/sasgui/guiframe/config.py	(revision a1b8fee73528559155793dd74cda07d0c32e9d72)
+++ src/sas/sasgui/guiframe/config.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -1,4 +1,4 @@
 """
-    Application settings
+Application settings
 """
 from __future__ import print_function
@@ -6,8 +6,8 @@
 import time
 import os
+import logging
+
 from sas.sasgui.guiframe.gui_style import GUIFRAME
 import sas.sasview
-import logging
-
 
 logger = logging.getLogger(__name__)
@@ -75,4 +75,5 @@
 _ansto_logo = os.path.join(icon_path, "ansto_logo.png")
 _tudelft_logo = os.path.join(icon_path, "tudelft_logo.png")
+_dls_logo = os.path.join(icon_path, "dls_logo.png")
 _nsf_logo = os.path.join(icon_path, "nsf_logo.png")
 _danse_logo = os.path.join(icon_path, "danse_logo.png")
Index: src/sas/sasgui/guiframe/customdir.py
===================================================================
--- src/sas/sasgui/guiframe/customdir.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ src/sas/sasgui/guiframe/customdir.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -1,9 +1,12 @@
 # Setup and find Custom config dir
+from __future__ import print_function
+
 import os.path
 import logging
 import shutil
-import imp
 
-from sas.sasgui import get_custom_config_path
+from sasmodels.custom import load_module_from_path
+
+from sas.sasgui import get_custom_config_path, get_app_dir
 
 logger = logging.getLogger(__name__)
@@ -22,35 +25,35 @@
 def _setup_custom_config():
     path = get_custom_config_path()
-    try:
-        if not os.path.isfile(path):
+    if not os.path.isfile(path):
+        try:
             # if the custom config file does not exist, copy the default from
             # the app dir
             shutil.copyfile(os.path.join(get_app_dir(), "custom_config.py"),
                             path)
-        #Adding SAS_OPENCL if it doesn't exist in the config file
-        # - to support backcompability
-        if not "SAS_OPENCL" in open(path).read():
+        except Exception:
+            logger.error("Could not copy default custom config.")
+
+    #Adding SAS_OPENCL if it doesn't exist in the config file
+    # - to support backcompability
+    if not "SAS_OPENCL" in open(path).read():
+        try:
             open(config_file, "a+").write("SAS_OPENCL = \"None\"\n")
-    except Exception:
-        #import traceback; logging.error(traceback.format_exc())
-        logger.error("Could not copy default custom config.")
+        except Exception:
+            logger.error("Could not update custom config with SAS_OPENCL.")
 
     custom_config = _load_config(path)
     return custom_config
 
+
 def _load_config(path):
     if os.path.exists(path):
         try:
-            fObj = None
-            fObj, config_path, descr = imp.find_module('custom_config', [os.path.dirname(path)])
-            custom_config = imp.load_module('custom_config', fObj, config_path, descr)
-            logger.info("GuiManager loaded %s" % config_path)
-            return custom_config
-        except Exception:
-            logger.error("Error loading %s: %s" % (path, sys.exc_value))
-        finally:
-            if fObj is not None:
-                fObj.close()
+            module = load_module_from_path('sas.sasview.custom_config', path)
+            logger.info("GuiManager loaded %s", path)
+            return module
+        except Exception as exc:
+            logger.error("Error loading %s: %s", path, exc)
+
     from sas.sasview import custom_config
-    logging.info("GuiManager custom_config defaults to sas.sasview.custom_config")
+    logger.info("GuiManager custom_config defaults to sas.sasview.custom_config")
     return custom_config
Index: src/sas/sasgui/guiframe/data_panel.py
===================================================================
--- src/sas/sasgui/guiframe/data_panel.py	(revision a1b8fee73528559155793dd74cda07d0c32e9d72)
+++ src/sas/sasgui/guiframe/data_panel.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -33,5 +33,7 @@
 from sas.sasgui.guiframe.local_perspectives.plotting.SimplePlot \
     import PlotFrame as QucikPlotDialog
-import sas.sasgui.guiframe.config as config
+from sas.sasgui import get_local_config
+
+config = get_local_config()
 
 # Check version
Index: src/sas/sasview/local_config.py
===================================================================
--- src/sas/sasview/local_config.py	(revision efe730d4bba7a05c203957e4495eece8359fcd77)
+++ src/sas/sasview/local_config.py	(revision c6bdb3b56ff2c1bf95baa3241ca1df10d74a79d7)
@@ -94,5 +94,5 @@
 _corner_image = os.path.join(icon_path, "angles_flat.png")
 _welcome_image = os.path.join(icon_path, "SVwelcome.png")
-_copyright = "(c) 2009 - 2017, UTK, UMD, NIST, ORNL, ISIS, ESS, ILL, ANSTO, TU Delft and DLS"
+_copyright = "(c) 2009 - 2017, UTK, UMD, NIST, ORNL, ISIS, ESS, ILL, ANSTO, TU Delft, and DLS"
 marketplace_url = "http://marketplace.sasview.org/"
 
@@ -148,4 +148,7 @@
 SAS_OPENCL = None
 
+# Time out for updating sasview
+UPDATE_TIMEOUT = 2
+
 def printEVT(message):
     if __EVT_DEBUG__:
