diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py
index 5f8a3cd41ff828359f77d616808189f0f0581559..408f3e5f1399e3ecf1e4452db1338170469b6f68 100644
--- a/pyopencl/cffi_cl.py
+++ b/pyopencl/cffi_cl.py
@@ -302,7 +302,7 @@ class _Program(_Common):
             
         ptr_program = _ffi.new('void **')
         ptr_devices = _ffi.new('void*[]', [device.ptr for device in devices])
-        ptr_binaries = [_ffi.new('char[]', binary) for binary in binaries]
+        ptr_binaries = [_ffi.new('char[%i]' % len(binary), binary) for binary in binaries]
         binary_sizes = _ffi.new('size_t[]', map(len, binaries))
 
         _handle_error(_lib._create_program_with_binary(