diff --git a/src/libmtime.f90 b/src/libmtime.f90
index 3caae0ccfb4eca60bc477d7a752b9640d6417de9..1abf9ca478a91d2c3f8f0e4740f6df02962065c3 100644
--- a/src/libmtime.f90
+++ b/src/libmtime.f90
@@ -120,9 +120,10 @@ MODULE mtime_juliandelta
 
 CONTAINS
 
-  FUNCTION newJuliandelta(sign,day, ms, errno) RESULT(ret_juliandelta) !OK-TESTED.
+  FUNCTION newJuliandelta(sign,day, ms, errno) RESULT(ret_juliandelta)
     TYPE(juliandelta), POINTER :: ret_juliandelta
-    CHARACTER(c_char),  INTENT(in) :: sign
+    ! I don't fully understand why value is needed here.
+    CHARACTER(kind=c_char),  INTENT(in), value :: sign
     INTEGER(c_int64_t), INTENT(in) :: day
     INTEGER(c_int64_t), INTENT(in) :: ms
     type(c_ptr)                    :: c_pointer
diff --git a/src/mtime_c_bindings.f90 b/src/mtime_c_bindings.f90
index c6fb9789559b7d896857b87719f88612c07df7a2..487822f99da1e07f1defd99c7744a703bc8b419e 100644
--- a/src/mtime_c_bindings.f90
+++ b/src/mtime_c_bindings.f90
@@ -116,7 +116,7 @@ module mtime_c_bindings
     function my_newjuliandelta(sign, day, ms) result(c_pointer) bind(c, name='newJulianDelta')
       import :: c_int64_t, c_char, c_ptr
       type(c_ptr)               :: c_pointer
-      character(c_char)         :: sign
+      character(kind=c_char), value  :: sign
       integer(c_int64_t), value :: day
       integer(c_int64_t), value :: ms
     end function my_newjuliandelta