diff --git a/src/Libraries/Mtp/Mtp/MtpDevice.cs b/src/Libraries/Mtp/Mtp/MtpDevice.cs
index 22b79ef..66e6386 100644
--- a/src/Libraries/Mtp/Mtp/MtpDevice.cs
+++ b/src/Libraries/Mtp/Mtp/MtpDevice.cs
@@ -484,10 +484,10 @@ namespace Mtp
 	internal struct DeviceEntry
 	{
 		[MarshalAs(UnmanagedType.LPStr)] public string vendor;
-		public short vendor_id;
+		public ushort vendor_id;
 		[MarshalAs(UnmanagedType.LPStr)] public string product;
-		public short product_id;
-		public int device_flags;
+		public ushort product_id;
+		public uint device_flags;
 	}
 
 	[StructLayout(LayoutKind.Sequential)]
diff --git a/src/Libraries/Mtp/Mtp/Track.cs b/src/Libraries/Mtp/Mtp/Track.cs
index 451ad3e..3476d52 100644
--- a/src/Libraries/Mtp/Mtp/Track.cs
+++ b/src/Libraries/Mtp/Mtp/Track.cs
@@ -299,7 +299,11 @@ namespace Mtp
 		public uint usecount;
 		public ulong filesize;
 #if LIBMTP_TRACK_HAS_MODDATE
+#if TIME_T_32
 		public uint modificationdate;
+#else
+		public ulong modificationdate;
+#endif
 #endif
 		public FileType filetype;
 		public IntPtr next; // Track Null if last
