anchor.diff:  		}
   		_namedParams = new Map();
   		_boundParams = new List();
  -		return _uQuery(query).then((result) {
  +		Completer c = new Completer();
  +		_uQuery(query).then((result) {
   			_result = result;
  -			return result != null;
  +			c.complete(result != null);
   		});
  +		return c.future;
   	}
   
   	Object prepareInput(Object value) {
  
positive.code: 	DDOStatement(this._query, this._connection, this._dbInfo, this._containerDdo);
  
  	Future<DDOResults> _uQuery(String query) {
  		return _connection.query(query).then((DDOResults results) {
  			_result = results;
  			return results;
  		});
  	}
  
  	int columnCount() {
  		return _result.columnCount();
  	}
  
  	Object fetch([int mode = null, Object cursor = null, int offset = null]) {
  		if (mode == null) {
  			mode = _fetchMode;
  		}
  		if (mode == null) {
  			mode == DDO.FETCH_BOTH;
  		}
  		Object result;
  		if (_result != null) {
  			switch (mode) {
  				case DDO.FETCH_NUM:
  					result = _result.fetchRow();
  					break;
  				case DDO.FETCH_ASSOC:
  					result = new Map<String, Object>();
  					DDOResult row = _result.fetchRow();
  					if(row == null) {
  						return null;
  					}
  					for(int x = 0; x < row.columnCount(); ++x) {
  						(result as Map<String, Object>)[_result.fields.elementAt(x)] = row.row.values.elementAt(x);
  					}
  					break;
  				default:
  					throw new ArgumentError("'${mode}' is not a valid fetch mode");
  
negative.code: 		return results;
  	}
  
  	Object fetchColumn([int colNumber = 0]) {
  		Object result;
  		if(_result != null) {
  			result = _result.results.first.row.values.elementAt(colNumber);
  		}
  		return result;
  	}
  
  	int rowCount() {
  		throw new UnimplementedError('Not yet implemented');
  	}
  
  	//Implemented methods
  	Future<bool> query() {
  		Completer c = new Completer();
  		_uQuery(_query).then((result) {
  			_result = result;
  			c.complete(result != null);
  		});
  		return c.future;
  	}
  
  	void rewind() {
  