diff --git a/{{cookiecutter.app_name}}/requirements/prod.txt b/{{cookiecutter.app_name}}/requirements/prod.txt
index c42b7ac274ee34a91ebcfa26a639206a5d972750..d9de63294dd38f1b5ecd105fc70269308f250b08 100644
--- a/{{cookiecutter.app_name}}/requirements/prod.txt
+++ b/{{cookiecutter.app_name}}/requirements/prod.txt
@@ -8,8 +8,8 @@ Jinja2==2.7
 itsdangerous==0.23
 
 # Database
-Flask-SQLAlchemy==1.0
-SQLAlchemy==0.8.3
+-e git://github.com/mitsuhiko/flask-sqlalchemy.git#egg=flask-sqlalchemy
+SQLAlchemy==0.9.4
 
 # Migrations
 Flask-Migrate>=1.0.0
diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/extensions.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/extensions.py
index a9dc6b74d1ce7920f2a70b17a6cdb55548b3cd6a..0e1383953b9d003ff2c8b1955a84e09602cc0b07 100644
--- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/extensions.py
+++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/extensions.py
@@ -9,8 +9,39 @@ bcrypt = Bcrypt()
 from flask.ext.login import LoginManager
 login_manager = LoginManager()
 
-from flask.ext.sqlalchemy import SQLAlchemy
-db = SQLAlchemy()
+from flask.ext.sqlalchemy import SQLAlchemy, SignallingSession, SessionBase
+class _SignallingSession(SignallingSession):
+    """A subclass of `SignallingSession` that allows for `binds` to be specified
+    in the `options` keyword arguments.
+
+    """
+    def __init__(self, db, autocommit=False, autoflush=True, **options):
+        self.app = db.get_app()
+        self._model_changes = {}
+        self.emit_modification_signals = \
+            self.app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
+
+        bind = options.pop('bind', None)
+        if bind is None:
+            bind = db.engine
+
+        binds = options.pop('binds', None)
+        if binds is None:
+            binds = db.get_binds(self.app)
+
+        SessionBase.__init__(self,
+                             autocommit=autocommit,
+                             autoflush=autoflush,
+                             bind=bind,
+                             binds=binds,
+                             **options)
+
+
+class _SQLAlchemy(SQLAlchemy):
+    """A subclass of `SQLAlchemy` that uses `_SignallingSession`."""
+    def create_session(self, options):
+        return _SignallingSession(self, **options)
+db = _SQLAlchemy()
 
 from flask.ext.migrate import Migrate
 migrate = Migrate()