diff --git a/modules/extensions_framework/__init__.py b/modules/extensions_framework/__init__.py
index 6c4ced376c5aa5fca0a3aef4bf4f2f6b241a88dc..08bd57e7e4e6d33255f8b0475eb6d6ab0a6608ca 100644
--- a/modules/extensions_framework/__init__.py
+++ b/modules/extensions_framework/__init__.py
@@ -29,11 +29,9 @@ import time
 import bpy
 
 from extensions_framework.ui import EF_OT_msg
-
 bpy.types.register(EF_OT_msg)
 del EF_OT_msg
 
-
 def log(str, popup=False, module_name='EF'):
 	"""Print a message to the console, prefixed with the module_name
 	and the current time. If the popup flag is True, the message will
diff --git a/modules/extensions_framework/util.py b/modules/extensions_framework/util.py
index dc737c6e4ae69aa8d271eb2d8fb710be1c29dcc9..b210e72921b7e60c0595251939cc56e1a90bc39c 100644
--- a/modules/extensions_framework/util.py
+++ b/modules/extensions_framework/util.py
@@ -35,10 +35,12 @@ import bpy
 
 """List of possibly appropriate paths to load/save addon config from/to"""
 config_paths = []
-if bpy.utils.user_resource('CONFIG') != "": config_paths.append(bpy.utils.user_resource('CONFIG'))
-if bpy.utils.user_resource('SCRIPTS') != "": config_paths.append(bpy.utils.user_resource('SCRIPTS'))
-for pth in bpy.utils.script_paths():
-	if pth != "": config_paths.append(pth)
+if bpy.utils.user_resource('CONFIG', '') != "": config_paths.append(bpy.utils.user_resource('CONFIG', '', create=True))
+if bpy.utils.user_resource('SCRIPTS', '') != "": config_paths.append(bpy.utils.user_resource('SCRIPTS', '', create=True))
+# want to scan other script paths in reverse order, since the user path comes last
+sp = [p for p in bpy.utils.script_paths() if p != '']
+sp.reverse()
+config_paths.extend(sp)
 
 """This path is set at the start of export, so that calls to
 path_relative_to_export() can make all exported paths relative to