diff --git a/libs/lensfun/lens.cpp b/libs/lensfun/lens.cpp
index 52b76658..b8430609 100644
--- a/libs/lensfun/lens.cpp
+++ b/libs/lensfun/lens.cpp
@@ -66,9 +66,10 @@ lfLens::lfLens (const lfLens &other)
     Mounts = NULL;
     MountNames.clear();
     const char* const* otherMounts = other.GetMountNames();
-    for (int i = 0; otherMounts[i]; i++)
-        AddMount(otherMounts[i]);
-
+    if (otherMounts) {
+        for (int i = 0; otherMounts[i]; i++)
+            AddMount(otherMounts[i]);
+    }
     for (auto *calibset : other.Calibrations)
         Calibrations.push_back(new lfLensCalibrationSet(*calibset));
 
@@ -96,9 +97,10 @@ lfLens &lfLens::operator = (const lfLens &other)
     Mounts = NULL;
     MountNames.clear();
     const char* const* otherMounts = other.GetMountNames();
-    for (int i = 0; otherMounts[i]; i++)
-        AddMount(otherMounts[i]);
-
+    if (otherMounts) {
+        for (int i = 0; otherMounts[i]; i++)
+            AddMount(otherMounts[i]);
+    }
     for (auto *calibset : Calibrations)
         delete calibset;
     Calibrations.clear();
diff --git a/libs/lensfun/mount.cpp b/libs/lensfun/mount.cpp
index bd875baa..86f667cb 100644
--- a/libs/lensfun/mount.cpp
+++ b/libs/lensfun/mount.cpp
@@ -28,8 +28,10 @@ lfMount::lfMount (const lfMount &other)
 
     MountCompat.clear();
     const char* const* otherMounts = other.GetCompats();
-    for (int i = 0; otherMounts[i]; i++)
-        AddCompat(otherMounts[i]);
+    if (otherMounts) {
+        for (int i = 0; otherMounts[i]; i++)
+            AddCompat(otherMounts[i]);
+    }
 }
 
 lfMount &lfMount::operator = (const lfMount &other)
@@ -40,9 +42,10 @@ lfMount &lfMount::operator = (const lfMount &other)
 
     MountCompat.clear();
     const char* const* otherMounts = other.GetCompats();
-    for (int i = 0; otherMounts[i]; i++)
-        AddCompat(otherMounts[i]);
-
+    if (otherMounts) {
+        for (int i = 0; otherMounts[i]; i++)
+            AddCompat(otherMounts[i]);
+    }
     return *this;
 }