diff --git a/CMakeLists.txt b/CMakeLists.txt
index 942b5adfd..f7e14ec08 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -291,16 +291,16 @@ check_c_source_compiles ("
 #include <guile/gh.h>
 #include <libguile.h>
 void print_string (SCM s) {
-  int len_r;
+  size_t len_r;
   char* r= gh_scm2newstr (s, &len_r);
 }
 int main() { return 0; }
 " _guile_str_size_test)
 
 if (_guile_str_size_test)
-  set (guile_str_size_t int)
-else (_guile_str_size_test)
   set (guile_str_size_t size_t)
+else (_guile_str_size_test)
+  set (guile_str_size_t int)
 endif (_guile_str_size_test)
 
 message (STATUS "Checking whether ... arguments behave correctly")