diff --git a/app/Config/database.php.default b/app/Config/database.php.default
deleted file mode 100644
index e3f5985b5..000000000
--- a/app/Config/database.php.default
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * This is core configuration file.
- *
- * Use it to configure core behaviour of Cake.
- *
- * PHP 5
- *
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link          http://cakephp.org CakePHP(tm) Project
- * @package       app.Config
- * @since         CakePHP(tm) v 0.2.9
- * @license       http://www.opensource.org/licenses/mit-license.php MIT License
- *
- * Database configuration class.
- * You can specify multiple configurations for production, development and testing.
- *
- * datasource => The name of a supported datasource; valid options are as follows:
- *		Database/Mysql 		- MySQL 4 & 5,
- *		Database/Sqlite		- SQLite (PHP5 only),
- *		Database/Postgres	- PostgreSQL 7 and higher,
- *		Database/Sqlserver	- Microsoft SQL Server 2005 and higher
- *
- * You can add custom database datasources (or override existing datasources) by adding the
- * appropriate file to app/Model/Datasource/Database. Datasources should be named 'MyDatasource.php',
- *
- *
- * persistent => true / false
- * Determines whether or not the database should use a persistent connection
- *
- * host =>
- * the host you connect to the database. To add a socket or port number, use 'port' => #
- *
- * prefix =>
- * Uses the given prefix for all the tables in this database. This setting can be overridden
- * on a per-table basis with the Model::$tablePrefix property.
- *
- * schema =>
- * For Postgres/Sqlserver specifies which schema you would like to use the tables in. Postgres defaults to 'public'. For Sqlserver, it defaults to empty and use
- * the connected user's default schema (typically 'dbo').
- *
- * encoding =>
- * For MySQL, Postgres specifies the character encoding to use when connecting to the
- * database. Uses database default not specified.
- *
- * unix_socket =>
- * For MySQL to connect via socket specify the `unix_socket` parameter instead of `host` and `port`
- */
-class DATABASE_CONFIG {
-
-	public $default = array(
-		'datasource' => 'Database/Mysql',
-		'persistent' => false,
-		'host' => 'localhost',
-		'login' => 'user',
-		'password' => 'password',
-		'database' => 'database_name',
-		'prefix' => '',
-		//'encoding' => 'utf8',
-	);
-
-	public $test = array(
-		'datasource' => 'Database/Mysql',
-		'persistent' => false,
-		'host' => 'localhost',
-		'login' => 'user',
-		'password' => 'password',
-		'database' => 'test_database_name',
-		'prefix' => '',
-		//'encoding' => 'utf8',
-	);
-}
diff --git a/lib/Cake/Model/Datasource/DboSource.php b/lib/Cake/Model/Datasource/DboSource.php
index abdad2437..120ab17e0 100644
--- a/lib/Cake/Model/Datasource/DboSource.php
+++ b/lib/Cake/Model/Datasource/DboSource.php
@@ -1112,7 +1112,7 @@ class DboSource extends DataSource {
 						$db->queryAssociation($model, $linkModel, $type, $assoc, $assocData, $array, true, $resultSet, $model->recursive - 1, $stack);
 						unset($db);
 
-						if ($type === 'hasMany') {
+						if ($type === 'hasMany' || $type === 'hasAndBelongsToMany') {
 							$filtered[] = $assoc;
 						}
 					}
@@ -1138,7 +1138,10 @@ class DboSource extends DataSource {
  * @return array Array of results that have been filtered through $model->afterFind
  */
 	protected function _filterResults(&$results, Model $model, $filtered = array()) {
-		$current = reset($results);
+		if (!is_array($results)) {
+                        return array();
+                }
+                $current = reset($results);
 		if (!is_array($current)) {
 			return array();
 		}
@@ -1252,6 +1255,9 @@ class DboSource extends DataSource {
 				} else {
 					$fetch = null;
 				}
+                                if ($queryData['callbacks'] === true || $queryData['callbacks'] === 'after') {
+					$this->_filterResults($fetch, $model);
+				}
 			}
 
 			$modelAlias = $model->alias;
@@ -1312,7 +1318,7 @@ class DboSource extends DataSource {
 					} else {
 						$this->_mergeAssociation($row, $fetch, $association, $type, $selfJoin);
 					}
-					if (isset($row[$association])) {
+					if (isset($row[$association]) && $type !== 'hasAndBelongsToMany') {
 						$row[$association] = $linkModel->afterFind($row[$association], false);
 					}
 				} else {