diff --git a/manifest b/manifest
index 6618d1bcc8..64c6b9ccb4 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Test\scoverage\sa\sfew\sextra\slines\sin\swhere.c.\s(CVS\s3756)
-D 2007-03-30T09:13:14
+C Comment\schanges\sin\sbtree.c\sand\sadded\sa\smissing\s"else"\sin\spragma.c.\s(CVS\s3757)
+D 2007-03-30T11:12:08
 F Makefile.in 2f2c3bf69faf0ae7b8e8af4f94f1986849034530
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -58,7 +58,7 @@ F src/alter.c 2c79ec40f65e33deaf90ca493422c74586e481a3
 F src/analyze.c 4bbf5ddf9680587c6d4917e02e378b6037be3651
 F src/attach.c a16ada4a4654a0d126b8223ec9494ebb81bc5c3c
 F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
-F src/btree.c 6619f15c3afacd19e42c7e01ad14df41bf2dc55d
+F src/btree.c 9b41229e7ff4b0fe8556763ce2b466a90aaaa6a4
 F src/btree.h 540dcbbf83435b77d4b6ef87f909c6cecad4dac9
 F src/build.c ad3374b5409554e504300f77e1fbc6b4c106a57f
 F src/callback.c 31d22b4919c7645cbcbb1591ce2453e8c677c558
@@ -89,7 +89,7 @@ F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
 F src/pager.c b89ea0f592e499ee6d6cda10b84688f8e47a05ba
 F src/pager.h f1b17bf848b3dce5d9afb2701186d3c9a8826f8c
 F src/parse.y 207ab04273ae13aa4a729b96008d294d5f334ab3
-F src/pragma.c 9cb8b94e7d38ba35a86037bd517d07ba9870b4b2
+F src/pragma.c 8fd4f98822007a8d2c34e235ad3c35f1d77b3e51
 F src/prepare.c 37207b2b2ccb41d379b01dd62231686bcc48ef1f
 F src/printf.c aade23a789d7cc88b397ec0d33a0a01a33a7a9c1
 F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
@@ -447,7 +447,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 19fc3d78962d225d42372b9298be5921ec1fc8a1
-R e306459b52b12a97b4adb0ba7151b039
-U danielk1977
-Z d6fdddc3faf743b9b05dd67e7d66af67
+P ea49ddf64aa6073b8018dc2faaf199704d359412
+R 22ce942b887da75ba44b7e076e36f7c6
+U drh
+Z 7ba311631083a1f0131b460fe5fb57bd
diff --git a/manifest.uuid b/manifest.uuid
index f9b9b68de6..a76fdb7d1d 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-ea49ddf64aa6073b8018dc2faaf199704d359412
\ No newline at end of file
+9a7d7e31908e9bac14a68bbc2fb4e1ca593ea234
\ No newline at end of file
diff --git a/src/btree.c b/src/btree.c
index ac999e1cd2..fe103ddec9 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -9,7 +9,7 @@
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: btree.c,v 1.345 2007/03/29 05:51:49 drh Exp $
+** $Id: btree.c,v 1.346 2007/03/30 11:12:08 drh Exp $
 **
 ** This file implements a external (disk-based) database using BTrees.
 ** For a detailed discussion of BTrees, refer to
@@ -2410,6 +2410,14 @@ autovacuum_out:
 /*
 ** Commit the transaction currently in progress.
 **
+** This routine implements the second phase of a 2-phase commit.  The
+** sqlite3BtreeSync() routine does the first phase and should be invoked
+** prior to calling this routine.  The sqlite3BtreeSync() routine did
+** all the work of writing information out to disk and flushing the
+** contents so that they are written onto the disk platter.  All this
+** routine has to do is delete or truncate the rollback journal
+** (which causes the transaction to commit) and drop locks.
+**
 ** This will release the write lock on the database file.  If there
 ** are no active cursors, it also releases the read lock.
 */
@@ -6515,6 +6523,18 @@ int sqlite3BtreeIsInReadTrans(Btree *p){
 }
 
 /*
+** This routine does the first phase of a 2-phase commit.  This routine
+** causes a rollback journal to be created (if it does not already exist)
+** and populated with enough information so that if a power loss occurs
+** the database can be restored to its original state by playing back
+** the journal.  Then the contents of the journal are flushed out to
+** the disk.  After the journal is safely on oxide, the changes to the
+** database are written into the database file and flushed to oxide.
+** At the end of this call, the rollback journal still exists on the
+** disk and we are still holding all locks, so the transaction has not
+** committed.  See sqlite3BtreeCommit() for the second phase of the
+** commit process.
+**
 ** This call is a no-op if no write-transaction is currently active on pBt.
 **
 ** Otherwise, sync the database file for the btree pBt. zMaster points to
diff --git a/src/pragma.c b/src/pragma.c
index a257630cb3..7f4c497193 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -11,7 +11,7 @@
 *************************************************************************
 ** This file contains code used to implement the PRAGMA command.
 **
-** $Id: pragma.c,v 1.130 2007/03/24 16:45:05 danielk1977 Exp $
+** $Id: pragma.c,v 1.131 2007/03/30 11:12:08 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -974,7 +974,7 @@ void sqlite3Pragma(
       sqlite3VdbeSetNumCols(v, 1);
       sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLeft, P3_TRANSIENT);
     }
-  }
+  }else
 #endif /* SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS */
 
 #if defined(SQLITE_DEBUG) || defined(SQLITE_TEST)