diff --git a/core/lib/Drupal/Core/Database/Connection.php b/core/lib/Drupal/Core/Database/Connection.php
index 462699b..4e8b87b 100644
--- a/core/lib/Drupal/Core/Database/Connection.php
+++ b/core/lib/Drupal/Core/Database/Connection.php
@@ -478,9 +478,9 @@ protected function filterComment($comment = '') {
    * @param $query
    *   The query to execute. In most cases this will be a string containing
    *   an SQL query with placeholders. An already-prepared instance of
-   *   DatabaseStatementInterface may also be passed in order to allow calling
+   *   StatementInterface may also be passed in order to allow calling
    *   code to manually bind variables to a query. If a
-   *   DatabaseStatementInterface is passed, the $args array will be ignored.
+   *   StatementInterface is passed, the $args array will be ignored.
    *   It is extremely rare that module code will need to pass a statement
    *   object to this method. It is used primarily for database drivers for
    *   databases that require special LOB field handling.
@@ -512,7 +512,7 @@ public function query($query, array $args = array(), $options = array()) {
       // We allow either a pre-bound statement object or a literal string.
       // In either case, we want to end up with an executed statement object,
       // which we pass to PDOStatement::execute.
-      if ($query instanceof DatabaseStatementInterface) {
+      if ($query instanceof StatementInterface) {
         $stmt = $query;
         $stmt->execute(NULL, $options);
       }
@@ -543,7 +543,7 @@ public function query($query, array $args = array(), $options = array()) {
         // Wrap the exception in another exception, because PHP does not allow
         // overriding Exception::getMessage(). Its message is the extra database
         // debug information.
-        $query_string = ($query instanceof DatabaseStatementInterface) ? $stmt->getQueryString() : $query;
+        $query_string = ($query instanceof StatementInterface) ? $stmt->getQueryString() : $query;
         $message = $e->getMessage() . ": " . $query_string . "; " . print_r($args, TRUE);
         $exception = new DatabaseExceptionWrapper($message, 0, $e);
 
diff --git a/core/lib/Drupal/Core/Database/Statement.php b/core/lib/Drupal/Core/Database/Statement.php
index c5b1735..120fac6 100644
--- a/core/lib/Drupal/Core/Database/Statement.php
+++ b/core/lib/Drupal/Core/Database/Statement.php
@@ -11,7 +11,7 @@
 use PDOStatement;
 
 /**
- * Default implementation of DatabaseStatementInterface.
+ * Default implementation of StatementInterface.
  *
  * PDO allows us to extend the PDOStatement class to provide additional
  * functionality beyond that offered by default. We do need extra
@@ -32,7 +32,7 @@ class Statement extends PDOStatement implements StatementInterface {
    */
   public $dbh;
 
-  protected function __construct($dbh) {
+  protected function __construct(Connection $dbh) {
     $this->dbh = $dbh;
     $this->setFetchMode(PDO::FETCH_OBJ);
   }
diff --git a/core/lib/Drupal/Core/Database/StatementInterface.php b/core/lib/Drupal/Core/Database/StatementInterface.php
index 7f1ca4a..1f893f1 100644
--- a/core/lib/Drupal/Core/Database/StatementInterface.php
+++ b/core/lib/Drupal/Core/Database/StatementInterface.php
@@ -31,6 +31,24 @@
 interface StatementInterface extends Traversable {
 
   /**
+   * Constructs a new PDOStatement object.
+   *
+   * The PDO manual does not document this constructor, but when overriding the
+   * PDOStatement class with a custom one without this constructor, PDO will
+   * throw the exception/warning:
+   *
+   * "PDO::query(): SQLSTATE[HY000]: General error: user-supplied statement does
+   *  not accept constructor arguments"
+   *
+   * PDO also enforces that the access type of this constructor must protected,
+   * and lastly, enforces that a custom PDOStatement interface omits the
+   * constructor (doing so results in fatal errors complaining about the accces
+   * type must not be public if it is public, and the access type must be
+   * omitted if it is protected; i.e., conflicting statements).
+   */
+  //protected function __construct(Connection $dbh);
+
+  /**
    * Executes a prepared statement
    *
    * @param $args
@@ -113,7 +131,7 @@ public function fetchField($index = 0);
   /**
    * Fetches the next row and returns it as an object.
    *
-   * The object will be of the class specified by DatabaseStatementInterface::setFetchMode()
+   * The object will be of the class specified by StatementInterface::setFetchMode()
    * or stdClass if not specified.
    */
   // public function fetchObject();
diff --git a/core/lib/Drupal/Core/Database/StatementPrefetch.php b/core/lib/Drupal/Core/Database/StatementPrefetch.php
index 18dd582..e01f03a 100644
--- a/core/lib/Drupal/Core/Database/StatementPrefetch.php
+++ b/core/lib/Drupal/Core/Database/StatementPrefetch.php
@@ -13,7 +13,7 @@
 use PDOException;
 
 /**
- * An implementation of DatabaseStatementInterface that prefetches all data.
+ * An implementation of StatementInterface that prefetches all data.
  *
  * This class behaves very similar to a PDOStatement but as it always fetches
  * every row it is possible to manipulate those results.
@@ -342,7 +342,7 @@ public function valid() {
     return isset($this->currentRow);
   }
 
-  /* Implementations of DatabaseStatementInterface. */
+  /* Implementations of StatementInterface. */
 
   public function rowCount() {
     return $this->rowCount;
