diff --git a/manifest b/manifest
index e5419b1ede..d227b8f80a 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sunused\svariable.\s(CVS\s848)
-D 2003-01-25T14:34:23
+C Fix\sa\sbug\sin\sthe\srollback\svalidation\slogic\s(code\sthat\sonly\sruns\sduring\ndebugging).\s\sThe\sproblem\swas\sintroduced\sby\scheck-in\s(835).\s(CVS\s849)
+D 2003-01-25T15:43:22
 F Makefile.in 6606854b1512f185b8e8c779b8d7fc2750463d64
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -33,7 +33,7 @@ F src/main.c ad3193c56da5acd31bc6cd48aa50dae1962d7c78
 F src/md5.c fe4f9c9c6f71dfc26af8da63e4d04489b1430565
 F src/os.c ed27e178e0c4b71f2807da81b8851f0fadc50778
 F src/os.h afa3e096213bad86845f8bdca81a9e917505e401
-F src/pager.c 82148bde7a080caab5f1c9ccec921275a14306dc
+F src/pager.c 95f5c5c775ed47e837ce02b407d80527d93e6c43
 F src/pager.h 540833e8cb826b80ce2e39aa917deee5e12db626
 F src/parse.y a4fbfbe3c4254c96dae8c33264fb54af755a3770
 F src/printf.c e8e9a0605602cb1a3a2dc754e0978fa9064ecee7
@@ -154,7 +154,7 @@ F www/speed.tcl 4d463e2aea41f688ed320a937f93ff885be918c3
 F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 5143d4814df1dd440a362a90dd3f328c84527565
-R 8d798f4de6f078b0174c54b9f779d4d6
+P 18f4ffaa2ed89784a1ea3c61c864d20e18fa1e9f
+R 4cf2a85c454063f72e76dc7b464fd72d
 U drh
-Z 8afdccf6d8d280981bb3a6b92995d993
+Z e18f1e76d391be3676abefbe5def4da4
diff --git a/manifest.uuid b/manifest.uuid
index 7fbbb41a46..353694ac86 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-18f4ffaa2ed89784a1ea3c61c864d20e18fa1e9f
\ No newline at end of file
+b6ea0da76a27a4a67a3978c53405840518de2379
\ No newline at end of file
diff --git a/src/pager.c b/src/pager.c
index 03be78c565..6fada9c343 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -18,7 +18,7 @@
 ** file simultaneously, or one process from reading the database while
 ** another is writing.
 **
-** @(#) $Id: pager.c,v 1.70 2003/01/22 01:26:44 drh Exp $
+** @(#) $Id: pager.c,v 1.71 2003/01/25 15:43:22 drh Exp $
 */
 #include "os.h"         /* Must be first to enable large file support */
 #include "sqliteInt.h"
@@ -1713,12 +1713,15 @@ int sqlitepager_rollback(Pager *pPager){
   ** worked if it had occurred after an OS crash or unexpected power
   ** loss.
   */
-  if( pPager->syncJSize<sizeof(aJournalMagic)+sizeof(Pgno) ){
-    pPager->syncJSize = sizeof(aJournalMagic)+sizeof(Pgno);
+  if( !pPager->noSync ){
+    assert( !pPager->tempFile );
+    if( pPager->syncJSize<sizeof(aJournalMagic)+sizeof(Pgno) ){
+      pPager->syncJSize = sizeof(aJournalMagic)+sizeof(Pgno);
+    }
+    TRACE2("TRUNCATE JOURNAL %lld\n", pPager->syncJSize);
+    rc =  sqliteOsTruncate(&pPager->jfd, pPager->syncJSize);
+    if( rc ) return rc;
   }
-  TRACE2("TRUNCATE JOURNAL %lld\n", pPager->syncJSize);
-  rc =  sqliteOsTruncate(&pPager->jfd, pPager->syncJSize);
-  if( rc ) return rc;
 #endif
 
   if( pPager->errMask!=0 && pPager->errMask!=PAGER_ERR_FULL ){