diff --git a/windows/TweetDuck/Program.cs b/windows/TweetDuck/Program.cs
index 7e32e8cc..dfc02d37 100644
--- a/windows/TweetDuck/Program.cs
+++ b/windows/TweetDuck/Program.cs
@@ -45,6 +45,7 @@ static class Program {
 		internal static void SetupWinForms() {
 			Win.Application.EnableVisualStyles();
 			Win.Application.SetCompatibleTextRenderingDefault(false);
+			Win.LegacyWinForms.EnsureValid();
 		}
 
 		[STAThread]
diff --git a/windows/TweetLib.WinForms.Legacy/Windows/Forms/Command2.cs b/windows/TweetLib.WinForms.Legacy/Windows/Forms/Command2.cs
index a60f6720..9fe39e06 100644
--- a/windows/TweetLib.WinForms.Legacy/Windows/Forms/Command2.cs
+++ b/windows/TweetLib.WinForms.Legacy/Windows/Forms/Command2.cs
@@ -4,10 +4,16 @@
 namespace System.Windows.Forms {
 	internal sealed class Command2 {
 		private static readonly Type Type = typeof(Form).Assembly.GetType("System.Windows.Forms.Command");
-		private static readonly ConstructorInfo Constructor = Type.GetConstructor(new Type[] { typeof(ICommandExecutor) }) ?? throw new NullReferenceException();
-		private static readonly MethodInfo DisposeMethod = Type.GetMethod("Dispose", BindingFlags.Instance | BindingFlags.Public) ?? throw new NullReferenceException();
-		private static readonly PropertyInfo IDProperty = Type.GetProperty("ID") ?? throw new NullReferenceException();
+		private static readonly ConstructorInfo Constructor = Type.GetConstructor(new Type[] { typeof(ICommandExecutor) });
+		private static readonly MethodInfo DisposeMethod = Type.GetMethod("Dispose", BindingFlags.Instance | BindingFlags.Public);
+		private static readonly PropertyInfo IDProperty = Type.GetProperty("ID");
 
+		internal static void EnsureValid() {
+			if (Constructor == null || DisposeMethod == null || IDProperty == null) {
+				throw new InvalidOperationException();
+			}
+		}
+		
 		public int ID { get; }
 
 		private readonly object cmd;
diff --git a/windows/TweetLib.WinForms.Legacy/Windows/Forms/ContextMenu.cs b/windows/TweetLib.WinForms.Legacy/Windows/Forms/ContextMenu.cs
index f20c053b..14a725c4 100644
--- a/windows/TweetLib.WinForms.Legacy/Windows/Forms/ContextMenu.cs
+++ b/windows/TweetLib.WinForms.Legacy/Windows/Forms/ContextMenu.cs
@@ -7,8 +7,14 @@
 
 namespace System.Windows.Forms {
 	public sealed class ContextMenu : Menu {
-		private static readonly FieldInfo NotifyIconWindowField = typeof(NotifyIcon).GetField("window", BindingFlags.Instance | BindingFlags.NonPublic) ?? throw new InvalidOperationException();
-			
+		private static readonly FieldInfo NotifyIconWindowField = typeof(NotifyIcon).GetField("_window", BindingFlags.Instance | BindingFlags.NonPublic);
+
+		internal static void EnsureValid() {
+			if (NotifyIconWindowField == null) {
+				throw new InvalidOperationException();
+			}
+		}
+
 		public event EventHandler Popup;
 
 		public void Show(Control control, Point pos) {
diff --git a/windows/TweetLib.WinForms.Legacy/Windows/Forms/LegacyWinForms.cs b/windows/TweetLib.WinForms.Legacy/Windows/Forms/LegacyWinForms.cs
new file mode 100644
index 00000000..e7cab516
--- /dev/null
+++ b/windows/TweetLib.WinForms.Legacy/Windows/Forms/LegacyWinForms.cs
@@ -0,0 +1,8 @@
+namespace System.Windows.Forms; 
+
+public static class LegacyWinForms {
+	public static void EnsureValid() {
+		Command2.EnsureValid();
+		ContextMenu.EnsureValid();
+	}
+}