Index: /home/kevin/src/Padre/Padre-Plugin-PerlCritic/lib/Padre/Plugin/PerlCritic.pm
===================================================================
--- /home/kevin/src/Padre/Padre-Plugin-PerlCritic/lib/Padre/Plugin/PerlCritic.pm	(revision 15813)
+++ /home/kevin/src/Padre/Padre-Plugin-PerlCritic/lib/Padre/Plugin/PerlCritic.pm	(working copy)
@@ -7,24 +7,39 @@
 use warnings;
 use Padre::Wx     ();
 use Padre::Plugin ();
-
+our $VERSION = 0.101;
 our @ISA = 'Padre::Plugin';
-
+#######
+# Method Padre_Interfaces required
+#######
 sub padre_interfaces {
-	'Padre::Plugin' => '0.47',;
+	return (
+		'Padre::Plugin'   => '0.91',
+		'Padre::Wx'       => '0.91',
+		'Padre::Wx::Main' => '0.91',
+		'Padre::Logger'   => '0.91',
+	);
 }
 
 sub plugin_name {
-	Wx::gettext('Perl Critic');
+	return Wx::gettext('Perl-Critic');
 }
 
-sub menu_plugins_simple {
+sub menu_plugins {
 	my $self = shift;
-	return $self->plugin_name => [
-		Wx::gettext('Perl::Critic Current Document') => sub {
-			$self->critic(@_);
-			}
-	];
+	my $main = shift;
+
+	# Create a manual menu item
+	my $item = Wx::MenuItem->new( undef, -1, $self->plugin_name, );
+	Wx::Event::EVT_MENU(
+		$main, $item,
+		sub {
+			local $@;
+			eval { $self->critic($main); };
+		},
+	);
+
+	return $item;
 }
 
 sub critic {
@@ -37,9 +52,7 @@
 	unless ( $document->isa('Padre::Document::Perl') ) {
 		return Wx::MessageBox(
 			Wx::gettext('Document is not a Perl document'),
-			Wx::gettext('Error'),
-			Wx::wxOK | Wx::wxCENTRE,
-			$self,
+			Wx::gettext('Error'), Wx::wxOK | Wx::wxCENTRE, $self,
 		);
 	}
 	my $text = $document->text_get;
@@ -61,10 +74,14 @@
 	$main->show_output(1);
 	if (@params) {
 		$output->AppendText(
-			sprintf( Wx::gettext('Perl::Critic running with project-specific configuration %s'), $config_perlcritic )
-				. "\n" );
+			sprintf(
+				Wx::gettext( 'Perl::Critic running with project-specific configuration %s' ),
+				$config_perlcritic
+				)
+				. "\n"
+		);
 	} else {
-		$output->AppendText( Wx::gettext("Perl\::Critic running with default or user configuration") . "\n" );
+		$output->AppendText( Wx::gettext('Perl::Critic running with default or user configuration') . "\n" );
 	}
 
 	# Hand off to Perl::Critic
@@ -82,6 +99,24 @@
 	return;
 }
 
+#######
+# Method plugin_disable required
+#######
+sub plugin_disable {
+	my $self = shift;
+
+	# Unload other cpan modules
+	$self->unload(
+		qw{
+			Perl::Critic
+			}
+	);
+
+	$self->SUPER::plugin_disable(@_);
+
+	return 1;
+}
+
 1;
 
 __END__