--- t/manip.t~	2012-09-27 18:32:39.000000000 +0200
+++ t/manip.t	2014-10-18 17:07:57.145336495 +0200
@@ -18,8 +18,11 @@
         $manip_bad = 'Date::Manip cannot determine time zone'
             unless eval 'Date::Manip::Date_TimeZone(); 1';
     }
-    delete $INC{'Date/Manip.pm'};
-    %Date::Manip:: = ();
+    if ($manip_bad) {
+       # Clean up %INC and symbol table
+        delete $INC{'Date/Manip.pm'};
+       %Date::Manip:: = ();
+    }
 }
 
 my $t = 'first thursday in june 2003';
--- t/funcs.t~	2012-09-27 18:32:39.000000000 +0200
+++ t/funcs.t	2014-10-18 17:03:16.345329214 +0200
@@ -17,13 +17,17 @@
 my $manip_notz;
 BEGIN {
     $manip_bad = eval('use Date::Manip (); 1')? 0 : 1;
-    unless ($manip_bad)
+    if ($manip_bad)
+    {
+        # Clean up %INC and symbol table
+        delete $INC{'Date/Manip.pm'};
+        %Date::Manip:: = ();
+    }
+    else
     {
         # If Date::Manip can't determine the time zone, it'll bomb out of the tests.
         $manip_notz = eval ('Date::Manip::Date_TimeZone (); 1')? 0 : 1;
     }
-    delete $INC{'Date/Manip.pm'};
-    %Date::Manip:: = ();
 }
 
 # Get day/month names in current locale
--- t/doc.t~	2012-09-27 18:32:39.000000000 +0200
+++ t/doc.t	2014-10-18 18:08:12.949430255 +0200
@@ -14,13 +14,17 @@
 BEGIN
 {
     $dm_notok = eval('use Date::Manip (); 1')? 0 : 1;
-    unless ($dm_notok)
+    if ($dm_notok)
+    {
+        # Clean up %INC and symbol table
+        delete $INC{'Date/Manip.pm'};
+        %Date::Manip:: = ();
+    }
+    else
     {
         # If Date::Manip can't determine the time zone, it'll bomb out of the tests.
         $dm_notz = eval('Date::Manip::Date_TimeZone (); 1')? 0 : 1;
     }
-    delete $INC{'Date/Manip.pm'};
-    %Date::Manip:: = ();
 }
 
 # Were all variables imported? (3)