diff --git a/core/constant_inc.php b/core/constant_inc.php
index 1861f69..e4ec709 100644
--- a/core/constant_inc.php
+++ b/core/constant_inc.php
@@ -372,6 +372,7 @@ define( 'ERROR_PLUGIN_ALREADY_INSTALLED', 2501 );
 define( 'ERROR_PLUGIN_PAGE_NOT_FOUND', 2502 );
 define( 'ERROR_PLUGIN_UPGRADE_FAILED', 2503 );
 define( 'ERROR_PLUGIN_INSTALL_FAILED', 2504 );
+define( 'ERROR_PLUGIN_UPGRADE_NEEDED', 2505 );
 define( 'ERROR_PLUGIN_GENERIC', 2599 );
 
 # ERROR_COLUMNS_*
diff --git a/lang/strings_english.txt b/lang/strings_english.txt
index c14081b..d42b52e 100644
--- a/lang/strings_english.txt
+++ b/lang/strings_english.txt
@@ -291,6 +291,7 @@ $MANTIS_ERROR[ERROR_PLUGIN_ALREADY_INSTALLED] = 'Plugin is already installed.';
 $MANTIS_ERROR[ERROR_PLUGIN_PAGE_NOT_FOUND] = 'Plugin page not found.';
 $MANTIS_ERROR[ERROR_PLUGIN_INSTALL_FAILED] = 'Plugin installation failed: %1$s.';
 $MANTIS_ERROR[ERROR_PLUGIN_UPGRADE_FAILED] = 'Upgrading the plugin schema failed in block #%1$s.';
+$MANTIS_ERROR[ERROR_PLUGIN_UPGRADE_NEEDED] = 'The "%1$s" plugin needs to be upgraded before you can access this page.';
 $MANTIS_ERROR[ERROR_PLUGIN_GENERIC] = 'There was an unknown error "%1$s" during execution of the "%2$s" plugin.';
 $MANTIS_ERROR[ERROR_COLUMNS_DUPLICATE] = 'Field "%1$s" contains duplicate column "%2$s".';
 $MANTIS_ERROR[ERROR_COLUMNS_INVALID] = 'Field "%1$s" contains invalid field "%2$s".';
diff --git a/plugin.php b/plugin.php
index 2fc968e..5d5d94e 100644
--- a/plugin.php
+++ b/plugin.php
@@ -48,6 +48,11 @@ if ( !is_file( $t_page ) ) {
 		trigger_error( ERROR_PLUGIN_PAGE_NOT_FOUND, ERROR );
 }
 
+if( plugin_needs_upgrade( $g_plugin_cache[$t_basename] ) ) {
+	error_parameters( $t_basename );
+	trigger_error( ERROR_PLUGIN_UPGRADE_NEEDED, ERROR );
+}
+
 plugin_push_current( $t_basename );
 include( $t_page );
 
