 includes/database/mysql/install.inc  |    1 +
 includes/database/pgsql/install.inc  |    1 +
 includes/database/sqlite/install.inc |    2 ++
 includes/install.inc                 |   26 ++++++++++++++++++++++++++
 4 files changed, 30 insertions(+), 0 deletions(-)

diff --git includes/database/mysql/install.inc includes/database/mysql/install.inc
index a861d26..da27412 100644
--- includes/database/mysql/install.inc
+++ includes/database/mysql/install.inc
@@ -11,6 +11,7 @@
 
 class DatabaseTasks_mysql extends DatabaseTasks {
   protected $pdoDriver = 'mysql';
+  protected $requiredVersion = '5.0.15';
   public function name() {
     return 'MySQL';
   }
diff --git includes/database/pgsql/install.inc includes/database/pgsql/install.inc
index f3b47b7..fdc76e2 100644
--- includes/database/pgsql/install.inc
+++ includes/database/pgsql/install.inc
@@ -11,6 +11,7 @@
 
 class DatabaseTasks_pgsql extends DatabaseTasks {
   protected $pdoDriver = 'pgsql';
+  protected $requiredVersion = '8.4.0';
 
   public function __construct() {
     $this->tasks[] = array(
diff --git includes/database/sqlite/install.inc includes/database/sqlite/install.inc
index ee8fbdc..b6a2a58 100644
--- includes/database/sqlite/install.inc
+++ includes/database/sqlite/install.inc
@@ -8,8 +8,10 @@
 
 class DatabaseTasks_sqlite extends DatabaseTasks {
   protected $pdoDriver = 'sqlite';
+  protected $requiredVersion = '3.0.0';
   public function name() {
     return 'SQLite';
   }
+
 }
 
diff --git includes/install.inc includes/install.inc
index 9095e8e..589a30d 100644
--- includes/install.inc
+++ includes/install.inc
@@ -265,6 +265,10 @@ abstract class DatabaseTasks {
    */
   protected $tasks = array(
     array(
+      'function'   => 'verifyVersion',
+      'arguments'    => array(),
+    ),
+    array(
       'arguments'   => array(
         'CREATE TABLE drupal_install_test (id int NULL)',
         'Drupal can use CREATE TABLE database commands.',
@@ -309,6 +313,13 @@ abstract class DatabaseTasks {
   protected $results = array();
 
   /**
+   * Allows database drivers to define the minimally required version.
+   *
+   * @var string
+   */
+  protected $requiredVersion = '';
+
+  /**
    * Ensure the PDO driver is supported by the version of PHP in use.
    */
   protected function hasPdoDriver() {
@@ -403,6 +414,21 @@ abstract class DatabaseTasks {
       return !$fatal;
     }
   }
+
+  /**
+   * Verify the version of the database.
+   */
+  protected function verifyVersion() {
+    if (!empty($this->requiredVersion)) {
+      $version = Database::getConnection()->getAttribute(PDO::ATTR_SERVER_VERSION);
+      if (version_compare($this->requiredVersion, $version) < 1) {
+        $this->pass(st('Version requirement fullfilled.'));
+      }
+      else {
+        $this->fail(st('Found %name version %version which is lower than the minimally required version %required .', array('%name' => $this->name(), '%version' => $version, '%required' => '3.0.0')));
+      }
+    }
+  }
 }
 /**
  * @class Exception class used to throw error if the DatabaseInstaller fails.
