diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/AbstractProjectImportTest.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/AbstractProjectImportTest.cs
index ce6a058..c95b409 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/AbstractProjectImportTest.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/AbstractProjectImportTest.cs
@@ -19,7 +19,7 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
-
+using System.Reflection;
 
 using NUnit.Framework;
 using NPanday.ProjectImporter;
@@ -168,15 +168,15 @@
         public void CheckWebMVC(string version)
         {
             // check MVC 2 installed
-//            string name = "System.Web.MVC, Version=" + version + ", Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL";
-//            try
-//            {
-//                Assembly.ReflectionOnlyLoad(new System.Reflection.AssemblyName(name).FullName);
-//            }
-//            catch
-//            {
-//                Assert.Ignore("Test only runs with MVC " + version + " installed");
-//            }
+            string name = "System.Web.MVC, Version=" + version + ", Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL";
+            try
+            {
+                Assembly.ReflectionOnlyLoad(new System.Reflection.AssemblyName(name).FullName);
+            }
+            catch
+            {
+                Assert.Ignore("Test only runs with MVC " + version + " installed");
+            }
         }
 
 		[Test]
