     /// access to the SQLite statement. Iteration of the statement does modify
     /// the row.
     init(statement: SelectStatement) {
-        let statementRef = Unmanaged.passRetained(statement) // released in init
+        let statementRef = Unmanaged.passRetained(statement) // released in deinit
         self.statementRef = statementRef
         self.sqliteStatement = statement.sqliteStatement
         self.impl = StatementRowImpl(statementRef: statementRef, sqliteStatement: statement.sqliteStatement)

        return impl.copy(self)
    }
    
    deinit {
        statementRef?.release()
    }
    
    
    // MARK: - Not Public
    

    /// The statementRef is released in deinit.
    let statementRef: Unmanaged<SelectStatement>?
    let sqliteStatement: SQLiteStatement
    
    deinit {
        statementRef?.release()
    }
    
    /// Builds a row from the an SQLite statement.
    ///
