diff --git a/src/read.c b/src/read.c
index e94e75bc..79315503 100644
--- a/src/read.c
+++ b/src/read.c
@@ -984,6 +984,7 @@ eval (struct ebuffer *ebuf, int set_default)
               /* Otherwise add it to the list to be rebuilt.  */
               deps = alloc_goaldep ();
               deps->next = read_files;
+              deps->floc = ebuf->floc;
               read_files = deps;
               deps->file = f;
             }
diff --git a/tests/scripts/features/loadapi b/tests/scripts/features/loadapi
index f4d335a7..640ac745 100644
--- a/tests/scripts/features/loadapi
+++ b/tests/scripts/features/loadapi
@@ -24,7 +24,7 @@ print $F <<'EOF' ;
 
 #include "gnumake.h"
 
-char* getenv (const char*);
+char *getenv (const char*);
 
 int plugin_is_GPL_compatible;
 
@@ -71,15 +71,22 @@ func_test (const char *funcname, unsigned int argc, char **argv)
 }
 
 int
-testapi_gmk_setup ()
+testapi_gmk_setup (const gmk_floc *floc)
 {
+    const char *verbose = getenv ("TESTAPI_VERBOSE");
+
     gmk_add_function ("test-expand", func_test, 1, 1, GMK_FUNC_DEFAULT);
     gmk_add_function ("test-noexpand", func_test, 1, 1, GMK_FUNC_NOEXPAND);
     gmk_add_function ("test-eval", func_test, 1, 1, GMK_FUNC_DEFAULT);
     gmk_add_function ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.", func_test, 0, 0, 0);
 
-    if (getenv ("TESTAPI_VERBOSE"))
-      printf("testapi_gmk_setup\n");
+    if (verbose)
+      {
+        printf ("testapi_gmk_setup\n");
+
+        if (verbose[0] == '2')
+          printf ("%s:%lu\n", floc->filenm, floc->lineno);
+      }
 
     if (getenv ("TESTAPI_KEEP"))
       return -1;
@@ -201,6 +208,18 @@ force:;
 .PHONY: force
 ", '', "testapi_gmk_setup\nhello\n#MAKE#: 'all' is up to date.\n");
 
+# sv 63100.
+# Test that make supplies the correct floc when the shared object is loaded
+# again.
+$ENV{TESTAPI_VERBOSE} = 2;
+run_make_test("
+load testapi.so
+$extra_loads
+all:; \$(info \$(test-expand hello))
+testapi.so: force; \$(info \$@)
+force:;
+.PHONY: force
+", '', "testapi_gmk_setup\n#MAKEFILE#:2\ntestapi.so\ntestapi_gmk_setup\n#MAKEFILE#:2\nhello\n#MAKE#: 'all' is up to date.\n");
 }
 
 unlink(qw(testapi.c testapi.so)) unless $keep;