--- a/webservice.hpp
+++ b/webservice.hpp
@@ -38,13 +38,13 @@ class WebService {
   MHD_Daemon* daemon;
   Functor functor;
  
-  static int on_request(void * cls, struct MHD_Connection * connection, const char * url, const char * method, const char * version,
+  static enum MHD_Result on_request(void * cls, struct MHD_Connection * connection, const char * url, const char * method, const char * version,
 			    const char * upload_data, size_t * upload_data_size,
 			    void ** ptr);
 };
 
 template <typename Functor>
-int WebService<Functor>::on_request(void * cls,
+enum MHD_Result WebService<Functor>::on_request(void * cls,
 		    struct MHD_Connection * connection,
 		    const char * url,
 		    const char * method,
@@ -53,7 +53,7 @@ int WebService<Functor>::on_request(void * cls,
 		    size_t * upload_data_size,
                     void ** ptr) {
   static int dummy;
-  int ret;
+  enum MHD_Result ret;
 
   if (std::string("GET") != method)
     return MHD_NO; /* unexpected method */
