diff --git a/.hgtags b/.hgtags
index d0c3ec1701b9ab78e527e381aa0f847d150a51da_LmhndGFncw==..0e3ca3b0425f6317be3755d21b5ea0d5f690f493_LmhndGFncw== 100644
--- a/.hgtags
+++ b/.hgtags
@@ -58,3 +58,5 @@
 88b739e85c615fc41a964f39e853fe77aaf3f207 rql-debian-version-0.26.4-1
 7a1df18b3a3ed41aa49d4baf10246a8e2e65a7d6 rql-version-0.26.6
 23bd1f36ec77f30cd525327d408ef6836f88eb24 rql-debian-version-0.26.6-1
+3c59bf663ec78dad82016b43f58348d5e35058ad rql-version-0.27.0
+0a5a70c34c65fccaf64603613d5d295b332e85cb rql-debian-version-0.27.0-1
diff --git a/ChangeLog b/ChangeLog
index d0c3ec1701b9ab78e527e381aa0f847d150a51da_Q2hhbmdlTG9n..0e3ca3b0425f6317be3755d21b5ea0d5f690f493_Q2hhbmdlTG9n 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,17 @@
 ChangeLog for RQL
 =================
 
+2010-10-13  --  0.27.0
+    * select.undefine_variable properly cleanup solutions (and restore them on
+      undo)
+
+    * fix potential crash in Referenceable.get_description
+
+    * introduce make_constant_restriction function, useful to build a
+      restriction without adding it yet to the tree
+
+
+
 2010-09-10  --  0.26.6
     * enhance bad rql query detection with ordered distinct (can't use distinct
       if an attribute is selected and we sort on another attribute)
diff --git a/__pkginfo__.py b/__pkginfo__.py
index d0c3ec1701b9ab78e527e381aa0f847d150a51da_X19wa2dpbmZvX18ucHk=..0e3ca3b0425f6317be3755d21b5ea0d5f690f493_X19wa2dpbmZvX18ucHk= 100644
--- a/__pkginfo__.py
+++ b/__pkginfo__.py
@@ -20,7 +20,7 @@
 __docformat__ = "restructuredtext en"
 
 modname = "rql"
-numversion = (0, 26, 6)
+numversion = (0, 27, 0)
 version = '.'.join(str(num) for num in numversion)
 
 license = 'LGPL'
diff --git a/debian/changelog b/debian/changelog
index d0c3ec1701b9ab78e527e381aa0f847d150a51da_ZGViaWFuL2NoYW5nZWxvZw==..0e3ca3b0425f6317be3755d21b5ea0d5f690f493_ZGViaWFuL2NoYW5nZWxvZw== 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+rql (0.27.0-1) unstable; urgency=low
+
+  * new upstream release
+
+ -- Sylvain Thénault <sylvain.thenault@logilab.fr>  Wed, 13 Oct 2010 07:55:35 +0200
+
 rql (0.26.6-1) unstable; urgency=low
 
   * new upstream release
diff --git a/setup.py b/setup.py
index d0c3ec1701b9ab78e527e381aa0f847d150a51da_c2V0dXAucHk=..0e3ca3b0425f6317be3755d21b5ea0d5f690f493_c2V0dXAucHk= 100644
--- a/setup.py
+++ b/setup.py
@@ -30,7 +30,7 @@
     if os.environ.get('NO_SETUPTOOLS'):
         raise ImportError()
     from setuptools import setup
-    from setuptools.command import install_lib
+    from setuptools.command import install_lib, build_ext
     USE_SETUPTOOLS = 1
 except ImportError:
     from distutils.core import setup
@@ -34,7 +34,7 @@
     USE_SETUPTOOLS = 1
 except ImportError:
     from distutils.core import setup
-    from distutils.command import install_lib
+    from distutils.command import install_lib, build_ext
     USE_SETUPTOOLS = 0
 
 
@@ -161,6 +161,27 @@
                 dest = join(self.install_dir, base, directory)
                 export(directory, dest, verbose=False)
 
+class MyBuildExt(build_ext.build_ext):
+    """Extend build_ext command to pass through compilation error.
+    In fact, if gecode extension fail, rql will use logilab.constraint
+    """
+    def run(self):
+        from distutils.errors import CompileError
+        try:
+            build_ext.build_ext.run(self)
+        except CompileError:
+            import traceback
+            traceback.print_traceback()
+            sys.stderr.write('================================\n'
+                             'The compilation of the gecode C extension failed. '
+                             'rql will use logilab.constraint which is a pure '
+                             'python implementation. '
+                             'Please note that the C extension run faster. '
+                             'So, install a compiler then install rql again with'
+                             ' the "force" option for better performance.\n'
+                             '================================\n')
+            pass
+
 def install(**kwargs):
     """setup entry point"""
     if USE_SETUPTOOLS:
@@ -193,7 +214,8 @@
                  scripts = ensure_scripts(scripts),
                  data_files = data_files,
                  ext_modules = ext_modules,
-                 cmdclass = {'install_lib': MyInstallLib},
+                 cmdclass = {'install_lib': MyInstallLib,
+                             'build_ext':MyBuildExt},
                  **kwargs
                  )