diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index e01be63a7058..c087cdd97332 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -379,18 +379,26 @@ std::string const CamApp::cameraName(const Camera *camera)
 	const ControlList &props = camera->properties();
 	std::string name;
 
-	switch (props.get(properties::Location)) {
-	case properties::CameraLocationFront:
-		name = "Internal front camera";
-		break;
-	case properties::CameraLocationBack:
-		name = "Internal back camera";
-		break;
-	case properties::CameraLocationExternal:
-		name = "External camera";
-		if (props.contains(properties::Model))
-			name += " '" + props.get(properties::Model) + "'";
-		break;
+	if (props.contains(properties::Location)) {
+		switch (props.get(properties::Location)) {
+		case properties::CameraLocationFront:
+			name = "Internal front camera";
+			break;
+		case properties::CameraLocationBack:
+			name = "Internal back camera";
+			break;
+		case properties::CameraLocationExternal:
+			name = "External camera";
+			if (props.contains(properties::Model))
+				name += " '" + props.get(properties::Model) + "'";
+			break;
+		}
+	} else if (props.contains(properties::Model)) {
+		/*
+		 * If the camera location is not availble use the camera model
+		 * to build the camera name.
+		 */
+		name = "'" + props.get(properties::Model) + "'";
 	}
 
 	name += " (" + camera->id() + ")";
