The eval_buffer function expects the end of the string as the
(optional) last argument, not its length.

Index: src/kmk/loadapi.c
===================================================================
--- src/kmk/loadapi.c	(revision 3600)
+++ src/kmk/loadapi.c	(working copy)
@@ -59,7 +59,7 @@
   install_variable_buffer (&pbuf, &plen);
 
   s = xstrdup (buffer);
-  eval_buffer (s, flp IF_WITH_VALUE_LENGTH_PARAM (strlen (s) /** @todo suboptimal */));
+  eval_buffer (s, flp IF_WITH_VALUE_LENGTH_PARAM (s + strlen (s) /** @todo suboptimal */));
   free (s);
 
   restore_variable_buffer (pbuf, plen);