--- a/augeas/__init__.py
+++ b/augeas/__init__.py
@@ -42,7 +42,7 @@
 
 import cffi
 import types
-from augeas.ffi import ffi, lib
+from augeas.ffi import ffi, lib, c89
 
 PY3 = _pyver >= (3,)
 AUGENC = 'utf8'
@@ -421,8 +421,8 @@
                 # Create a python string and append it to our matches list
                 item = ffi.string(array[i])
                 matches.append(dec(item))
-                lib.free(array[i])
-        lib.free(array)
+                c89.free(array[i])
+        c89.free(array)
         return matches
 
     def span(self, path):
--- a/augeas/ffi.py
+++ b/augeas/ffi.py
@@ -40,6 +40,7 @@
 """)
 
 lib = ffi.dlopen("augeas")
+c89 = ffi.dlopen(None)
 
 if __name__ == "__main__":
     ffi.compile(verbose=True)