diff --git a/src/c_wrapper/program.cpp b/src/c_wrapper/program.cpp
index c3f67defc34fca97276021ff62b75de81fb65ef5..2aa6efe71347ba316bf09bb1473ad0d3a2f1efb1 100644
--- a/src/c_wrapper/program.cpp
+++ b/src/c_wrapper/program.cpp
@@ -7,6 +7,12 @@ namespace pyopencl {
 
 template class clobj<cl_program>;
 
+PYOPENCL_USE_RESULT static PYOPENCL_INLINE program*
+new_program(cl_program prog, program_kind_type progkind=KND_UNKNOWN)
+{
+    return pyopencl_convert_obj(program, clReleaseProgram, prog, progkind);
+}
+
 program::~program()
 {
     pyopencl_call_guarded_cleanup(clReleaseProgram, this);
diff --git a/src/c_wrapper/program.h b/src/c_wrapper/program.h
index e4830427a0e7efd9e29dfe53827b66b03d04a471..08357a27c537bdf60ec1bf231d2c7b8dbd29471f 100644
--- a/src/c_wrapper/program.h
+++ b/src/c_wrapper/program.h
@@ -80,11 +80,6 @@ public:
     //       }
     // #endif
 };
-PYOPENCL_USE_RESULT static PYOPENCL_INLINE program*
-new_program(cl_program prog, program_kind_type progkind=KND_UNKNOWN)
-{
-    return pyopencl_convert_obj(program, clReleaseProgram, prog, progkind);
-}
 
 // }}}