diff --git a/flandmark/ext/ext.cpp b/flandmark/ext/ext.cpp
index 81eb80867b29d19df95bd3e97961eee07e2bd653..2c14351c79188d984f9324556078db4921e39229 100644
--- a/flandmark/ext/ext.cpp
+++ b/flandmark/ext/ext.cpp
@@ -96,8 +96,11 @@ class Localizer {
         det["bbox"] = make_tuple(r->x, r->y, r->width, r->height);
         int bbox[4] = {r->x, r->y, r->x + r->width, r->y + r->height};
 
-        flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(),
-            m_landmarks.get());
+        {
+          bob::python::no_gil unlock;
+          flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(),
+              m_landmarks.get());
+        }
 
         list lmlist; ///< landmark list
 
diff --git a/flandmark/test.py b/flandmark/test.py
index 31bba7c82a8065333aaf1e54e4c74923c8b1d361..501958d30f37766248b83c60ba1497a099aa1f4e 100644
--- a/flandmark/test.py
+++ b/flandmark/test.py
@@ -39,4 +39,6 @@ class FlandmarkTest(unittest.TestCase):
         "flandmark/flandmark_model.dat")
 
     for i, f in enumerate(bob.io.VideoReader(INPUT_VIDEO)):
-      self.assertTrue(op(bob.ip.rgb_to_gray(f)))
+      v = bob.ip.rgb_to_gray(f)
+      print v
+      self.assertTrue(op(v))