diff --git a/changes/ticket31336 b/changes/ticket31336
new file mode 100644
index 0000000000000000000000000000000000000000..c5a013699f74aab3a717013520b2eeab9a8335ff
--- /dev/null
+++ b/changes/ticket31336
@@ -0,0 +1,3 @@
+  o Minor bugfixes (developer tools):
+    - Allow paths starting with ./ in scripts/add_c_file.py. Fixes bug 
+      31336; bugfix on 0.4.1.2-alpha.
diff --git a/scripts/maint/add_c_file.py b/scripts/maint/add_c_file.py
index adf7ce79bbd1e7112cced7fa6c1aff305f7a3b53..a773fd0fff4476fd846631035f9ac90ccde54267 100755
--- a/scripts/maint/add_c_file.py
+++ b/scripts/maint/add_c_file.py
@@ -15,9 +15,7 @@ import time
 
 def topdir_file(name):
     """Strip opening "src" from a filename"""
-    if name.startswith("src/"):
-        name = name[4:]
-    return name
+    return os.path.relpath(name, './src')
 
 def guard_macro(name):
     """Return the guard macro that should be used for the header file 'name'.