diff --git a/fsl/wrappers/wrapperutils.py b/fsl/wrappers/wrapperutils.py
index f1b6dca52acc146f800a061027050d4f20037893..29c573ddc740cb18c0ad3f94e8d94d32ee0f3e4e 100644
--- a/fsl/wrappers/wrapperutils.py
+++ b/fsl/wrappers/wrapperutils.py
@@ -858,7 +858,6 @@ class _FileOrThing(object):
         for prefixed in it.chain(*allPrefixed):
             fullpath = prefixed
             prefixed = op.relpath(prefixed, workdir)
-
             for prefPat, prefName in prefixes.items():
                 if not fnmatch.fnmatch(prefixed, '{}*'.format(prefPat)):
                     continue
@@ -871,9 +870,13 @@ class _FileOrThing(object):
                 # not of the correct type.
                 fval = self.__load(fullpath)
                 if fval is not None:
-                    prefixed = self.__removeExt(prefixed)
-                    prefixed = re.sub('^' + prefPat, prefName, prefixed)
-                    result[prefixed] = fval
+                    noext = self.__removeExt(prefixed)
+                    noext = re.sub('^' + prefPat, prefName, noext)
+                    if noext not in result:
+                        result[noext] = fval
+                    else:
+                        withext = re.sub('^' + prefPat, prefName, prefixed)
+                        result[withext] = fval
                     break
 
         return result