--- MM_Win32.pm_orig	Sat Apr 17 13:38:04 2010
+++ MM_Win32.pm	Sat Apr 17 16:10:19 2010
@@ -33,7 +33,9 @@
 
 my $BORLAND = $Config{'cc'} =~ /\bbcc/i ? 1 : 0;
 my $GCC     = $Config{'cc'} =~ /\bgcc/i ? 1 : 0;
-my $DLLTOOL = $Config{'dlltool'} || 'dlltool';
+my $dlltool = $Config{'cc'} =~ /x86_64\-w64\-mingw32\-/i ? 'x86_64-w64-mingw32-dlltool'
+                                                         : 'dlltool';
+my $DLLTOOL = $Config{'dlltool'} || $dlltool;
 
 
 =head2 Overridden methods
@@ -359,8 +361,17 @@
 
 sub init_linker {
     my $self = shift;
-
-    $self->{PERL_ARCHIVE}       = "\$(PERL_INC)\\$Config{libperl}";
+    
+    if($GCC &&
+      $Config{libperl} =~ /\.lib/ &&
+      $Config{archname} =~ /\-x64/) {
+      my $libperl = $Config{libperl};
+      $libperl =~ s/\.lib/\.dll/;
+      $self->{PERL_ARCHIVE}       = "$Config{bin}\\$libperl";		
+    }
+    else {
+      $self->{PERL_ARCHIVE}       = "\$(PERL_INC)\\$Config{libperl}";
+    }
     $self->{PERL_ARCHIVE_AFTER} = '';
     $self->{EXPORT_LIST}        = '$(BASEEXT).def';
 }
