diff --git a/scripts/migration/0.8.2/migrate_couch_schema/__init__.py b/scripts/migration/0.8.2/migrate_couch_schema/__init__.py
index 7af2e537f014e970db591b982d8535a39462ecdf..97757b32946b207eae5a5069178be96764f17cc5 100644
--- a/scripts/migration/0.8.2/migrate_couch_schema/__init__.py
+++ b/scripts/migration/0.8.2/migrate_couch_schema/__init__.py
@@ -86,6 +86,7 @@ def migrate(args, target_version):
 
 def _migrate_user_db(db, do_migrate):
     _migrate_transaction_log(db, do_migrate)
+    _remove_transactions_from_documents(db, do_migrate)
     _migrate_sync_docs(db, do_migrate)
     _delete_design_docs(db, do_migrate)
     _migrate_config_doc(db, do_migrate)
@@ -113,6 +114,25 @@ def _migrate_transaction_log(db, do_migrate):
             db.save(doc)
 
 
+def _remove_transactions_from_documents(db, do_migrate):
+    logger.info('[%s] removing transactions from all docs' % db.name)
+    view = db.view('_all_docs', include_docs='true')
+    for row in view.rows:
+        doc = row['doc']
+        doc_id = doc['_id']
+        # skip metadata documents
+        for s in ['sync_', 'gen-', 'u1db_config', '_design']:
+            if doc_id.startswith(s):
+                continue
+        # actually remove the u1db transactions from the document
+        if 'u1db_transactions' in doc:
+            del doc['u1db_transactions']
+            logger.debug('[%s] removing transactions from doc: %s'
+                         % (db.name, doc_id))
+            if do_migrate:
+                db.save(doc)
+
+
 def _migrate_config_doc(db, do_migrate):
     old_doc = db['u1db_config']
     new_doc = {
diff --git a/scripts/migration/0.8.2/tests/conftest.py b/scripts/migration/0.8.2/tests/conftest.py
index 61f6c7eee7e545852b5d313480a002b10d1d5169..f28accf9e354ee17a95ab0640bc722bd1429ab47 100644
--- a/scripts/migration/0.8.2/tests/conftest.py
+++ b/scripts/migration/0.8.2/tests/conftest.py
@@ -27,8 +27,10 @@ initial_docs = [
      'transaction_id': ''},
     {'_id': 'u1db_sync_B', 'generation': 2, 'replica_uid': 'B',
      'transaction_id': 'X'},
-    {'_id': 'doc1', 'u1db_transactions': [(1, 'trans-1'), (3, 'trans-3')]},
-    {'_id': 'doc2', 'u1db_transactions': [(2, 'trans-2'), (4, 'trans-4')]},
+    {'_id': 'doc1', 'u1db_transactions': [(1, 'trans-1'), (3, 'trans-3')],
+     'u1db_rev': 'doc1-rev'},
+    {'_id': 'doc2', 'u1db_transactions': [(2, 'trans-2'), (4, 'trans-4')],
+     'u1db_rev': 'doc2-rev'},
     {'_id': '_design/docs'},
     {'_id': '_design/syncs'},
     {'_id': '_design/transactions',
@@ -50,5 +52,9 @@ def db(request):
     db = server.create(dbname)
     for doc in initial_docs:
         db.save(doc)
+    # add an attachment to ensure it's untouched
+    for doc_id in ['doc1', 'doc2']:
+        doc = db.get(doc_id)
+        db.put_attachment(doc, 'untouched', filename='u1db_content')
     request.addfinalizer(lambda: server.delete(dbname))
     return db
diff --git a/scripts/migration/0.8.2/tests/test_migrate.py b/scripts/migration/0.8.2/tests/test_migrate.py
index 10c8b9069d50850a5cfdf5e18227c19871c1e49f..e060a204f388410adeb2f0e77763ed0c74ef2351 100644
--- a/scripts/migration/0.8.2/tests/test_migrate.py
+++ b/scripts/migration/0.8.2/tests/test_migrate.py
@@ -65,3 +65,17 @@ def test__migrate_user_db(db):
     assert gen_4[DOC_ID_KEY] == 'doc2'
     assert gen_4[GENERATION_KEY] == 4
     assert gen_4[TRANSACTION_ID_KEY] == 'trans-4'
+
+    # assert normal doc contents
+    doc1 = db.get('doc1')
+    attachment1 = db.get_attachment(doc1, 'u1db_content')
+    assert 'u1db_rev' in doc1
+    assert 'u1db_transactions' not in doc1
+    assert doc1['u1db_rev'] == 'doc1-rev'
+    assert attachment1.read() == 'untouched'
+    doc2 = db.get('doc2')
+    attachment2 = db.get_attachment(doc2, 'u1db_content')
+    assert 'u1db_rev' in doc2
+    assert 'u1db_transactions' not in doc2
+    assert doc2['u1db_rev'] == 'doc2-rev'
+    assert attachment2.read() == 'untouched'