Index: /branches/release-30/lib/MT/Util.pm
===================================================================
--- /branches/release-30/lib/MT/Util.pm (revision 1411)
+++ /branches/release-30/lib/MT/Util.pm (revision 1425)
@@ -492,5 +492,5 @@
 
 {
-    my $Have_Entities = eval 'use HTML::Entities; 1' ? 1 : 0;
+    my $Have_Entities;
 
     sub encode_html {
@@ -499,4 +499,7 @@
         $html =~ tr!\cM!!d;
         #Encode::_utf8_on($html) if MT->instance->charset eq 'utf-8';
+        unless (defined($Have_Entities)) {
+            $Have_Entities = eval 'use HTML::Entities; 1' ? 1 : 0;
+        }
         if ($Have_Entities && !MT->config->NoHTMLEntities) {
             $html = HTML::Entities::encode_entities($html);
@@ -521,4 +524,7 @@
         return '' unless defined $html;
         $html =~ tr!\cM!!d;
+        unless (defined($Have_Entities)) {
+            $Have_Entities = eval 'use HTML::Entities; 1' ? 1 : 0;
+        }
         if ($Have_Entities && !MT->config->NoHTMLEntities) {
             $html = HTML::Entities::decode_entities($html);
@@ -1560,13 +1566,16 @@
 }
 
+{
+my $has_crypt_dsa;
 sub dsa_verify {
     my %param = @_;
 
-    eval {
-        require Crypt::DSA;
-    };
-    my $has_crypt_dsa = $@ ? 0 : 1;
-    $has_crypt_dsa = 0 if $param{ForcePerl};
-    if ($has_crypt_dsa) {
+    unless (defined $has_crypt_dsa) {
+        eval {
+            require Crypt::DSA;
+        };
+        $has_crypt_dsa = $@ ? 0 : 1;
+    }
+    if ($has_crypt_dsa && !$param{ForcePerl}) {
         $param{Key} = bless $param{Key}, 'Crypt::DSA::Key';
         $param{Signature} = bless $param{Signature}, 'Crypt::DSA::Signature';
@@ -1606,4 +1615,5 @@
     return defined($result) ? $result == 0 : 0;
     }
+}
 }
 
