diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 27397ba..86979df 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -11,6 +11,8 @@ use strict;
 use warnings;
 use base qw(Project);
 
+no warnings qw(redefine);
+
 sub _new
 {
 	my $classname = shift;
@@ -399,6 +401,8 @@ use strict;
 use warnings;
 use base qw(MSBuildProject);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -420,6 +424,8 @@ use strict;
 use warnings;
 use base qw(MSBuildProject);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -464,6 +470,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -487,6 +495,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -510,6 +520,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 261c913..0d35546 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -229,6 +229,7 @@ sub AddDir
 
 				if ($filter eq "LIBOBJS")
 				{
+					no warnings qw(once);
 					if (grep(/$p/, @main::pgportfiles, @main::pgcommonfiles)
 						== 1)
 					{
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 8f0b355..1440989 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -10,6 +10,8 @@ use strict;
 use warnings;
 use VSObjectFactory;
 
+no warnings qw(redefine);
+
 sub _new
 {
 	my $classname = shift;
@@ -768,6 +770,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -791,6 +795,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -815,6 +821,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -839,6 +847,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -863,6 +873,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -889,6 +901,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -915,6 +929,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
diff --git a/src/tools/msvc/VCBuildProject.pm b/src/tools/msvc/VCBuildProject.pm
index 03b890b..ad613b3 100644
--- a/src/tools/msvc/VCBuildProject.pm
+++ b/src/tools/msvc/VCBuildProject.pm
@@ -11,6 +11,8 @@ use strict;
 use warnings;
 use base qw(Project);
 
+no warnings qw(redefine);
+
 sub _new
 {
 	my $classname = shift;
@@ -268,6 +270,8 @@ use strict;
 use warnings;
 use base qw(VCBuildProject);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
@@ -289,6 +293,8 @@ use strict;
 use warnings;
 use base qw(VCBuildProject);
 
+no warnings qw(redefine);
+
 sub new
 {
 	my $classname = shift;
diff --git a/src/tools/msvc/VSObjectFactory.pm b/src/tools/msvc/VSObjectFactory.pm
index eea59c5..8a5f8f9 100644
--- a/src/tools/msvc/VSObjectFactory.pm
+++ b/src/tools/msvc/VSObjectFactory.pm
@@ -20,6 +20,8 @@ our (@ISA, @EXPORT);
 @ISA    = qw(Exporter);
 @EXPORT = qw(CreateSolution CreateProject DetermineVisualStudioVersion);
 
+no warnings qw(redefine);
+
 sub CreateSolution
 {
 	my $visualStudioVersion = shift;
