diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 096d2c7aeb..021c6b7ee1 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -235,15 +235,14 @@ class Command(BaseCommand):
         if self.verbosity >= 2:
             self.stdout.write("Loading '%s' fixtures..." % fixture_name)
 
+        dirname, basename = os.path.split(fixture_name)
         if os.path.isabs(fixture_name):
-            fixture_dirs = [os.path.dirname(fixture_name)]
-            fixture_name = os.path.basename(fixture_name)
+            fixture_dirs = [dirname]
         else:
             fixture_dirs = self.fixture_dirs
             if os.path.sep in os.path.normpath(fixture_name):
-                fixture_dirs = [os.path.join(dir_, os.path.dirname(fixture_name))
-                                for dir_ in fixture_dirs]
-                fixture_name = os.path.basename(fixture_name)
+                fixture_dirs = [os.path.join(dir_, dirname) for dir_ in fixture_dirs]
+        fixture_name = basename
 
         suffixes = (
             '.'.join(ext for ext in combo if ext)