diff --git a/DiscImageChef.Filesystems/CPM/Definitions.cs b/DiscImageChef.Filesystems/CPM/Definitions.cs
index f366f025c..ab6a455bf 100644
--- a/DiscImageChef.Filesystems/CPM/Definitions.cs
+++ b/DiscImageChef.Filesystems/CPM/Definitions.cs
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems.CPM
///
/// CP/M disk definitions
///
- class CpmDefinitions
+ public class CpmDefinitions
{
///
/// Timestamp of creation of the CP/M disk definitions list
@@ -96,7 +96,7 @@ namespace DiscImageChef.Filesystems.CPM
///
/// CP/M disk definition
///
- class CpmDefinition
+ public class CpmDefinition
{
///
/// Maps the first 16 allocation blocks for reservation, high byte
@@ -196,7 +196,7 @@ namespace DiscImageChef.Filesystems.CPM
///
/// Side descriptions
///
- class Side
+ public class Side
{
///
/// Software interleaving mask, [1,3,0,2] means CP/M LBA 0 is physical sector 1, LBA 1 = 3, so on
diff --git a/DiscImageChef.Filesystems/CPM/Super.cs b/DiscImageChef.Filesystems/CPM/Super.cs
index c6a8210d5..0b724d60e 100644
--- a/DiscImageChef.Filesystems/CPM/Super.cs
+++ b/DiscImageChef.Filesystems/CPM/Super.cs
@@ -367,8 +367,8 @@ namespace DiscImageChef.Filesystems.CPM
// allocate block 0 for a file because that's where the directory resides.
// There is also a field telling how many bytes are used in the last block, but its meaning is
// non-standard so we must ignore it.
- foreach(ushort blk in entry.allocations.Cast()
- .Where(blk => !blocks.Contains(blk) && blk != 0)) blocks.Add(blk);
+ foreach(byte blk in entry.allocations
+ .Where(blk => !blocks.Contains((ushort)blk) && blk != 0)) blocks.Add((ushort)blk);
// Save the file
fInfo.UID = (ulong)user;