diff --git a/clay/__init__.py b/clay/__init__.py
index <HASH>..<HASH> 100644
--- a/clay/__init__.py
+++ b/clay/__init__.py
@@ -13,4 +13,4 @@ License: [MIT License] (http://www.opensource.org/licenses/mit-license.php).
 from .core import *
 
 
-__version__ = '1.0.23'
+__version__ = '1.0.24'
diff --git a/clay/core.py b/clay/core.py
index <HASH>..<HASH> 100644
--- a/clay/core.py
+++ b/clay/core.py
@@ -35,11 +35,11 @@ class Clay(object):
         self.build_dir = join(base_dir, c.BUILD_DIR)
  
         settings = settings or {}
-        self.settings = Settings(c.default_settings, settings)
+        self.settings = Settings(settings, c.default_settings)
 
-        theme_prefix = self.settings.get('theme_prefix', u'').rstrip('/')
+        theme_prefix = self.settings.get('theme_prefix', '').strip('/')
         if theme_prefix:
-            theme_prefix += u'/'
+            theme_prefix += '/'
         self.settings['theme_prefix'] = theme_prefix
 
         views_ignore = self.settings.get('views_ignore', [])
Fix bug with custom settings being overwritten by the default ones.