diff --git a/bob/io/image/pnmio.c b/bob/io/image/pnmio.cpp
similarity index 100%
rename from bob/io/image/pnmio.c
rename to bob/io/image/pnmio.cpp
diff --git a/bob/io/image/pnmio.h b/bob/io/image/pnmio.h
index cbc9c62caa5bd7222d8c1f767e3ae47864473d1a..8b9cb168f24d105c670160023ef4443f596d2da3 100755
--- a/bob/io/image/pnmio.h
+++ b/bob/io/image/pnmio.h
@@ -48,6 +48,8 @@
 
 
 /* PNM/PFM API. */
+
+extern "C"{
 int  get_pnm_type(FILE *f);
 int read_pbm_header(FILE *f, int *img_xdim, int *img_ydim, int *is_ascii);
 int read_pgm_header(FILE *f, int *img_xdim, int *img_ydim, int *img_colors,
@@ -66,5 +68,6 @@ int write_pgm_file(FILE *f, int *img_out,
 int write_ppm_file(FILE *f, int *img_out,
        int x_size, int y_size, int x_scale_val, int y_scale_val,
        int img_colors, int is_ascii, unsigned int bytes_per_sample);
+}
 
 #endif /* PNMIO_H */
diff --git a/setup.py b/setup.py
index feae918c30758904bf65a7e952a1e3fbbfa76092..be00305a48efa70c2038e1025df41954a0b5de07 100644
--- a/setup.py
+++ b/setup.py
@@ -397,7 +397,7 @@ setup(
           "bob/io/image/png.cpp",
           "bob/io/image/jpeg.cpp",
           "bob/io/image/bmp.cpp",
-          "bob/io/image/pnmio.c",
+          "bob/io/image/pnmio.cpp",
           "bob/io/image/netpbm.cpp",
           "bob/io/image/main.cpp",
         ],