diff -ruNp 163-bug-on-fork-while-freezer-on.patch-old/kernel/fork.c 163-bug-on-fork-while-freezer-on.patch-new/kernel/fork.c
--- 163-bug-on-fork-while-freezer-on.patch-old/kernel/fork.c	2005-07-06 11:00:22.000000000 +1000
+++ 163-bug-on-fork-while-freezer-on.patch-new/kernel/fork.c	2005-07-04 23:14:18.000000000 +1000
@@ -41,6 +41,7 @@
 #include <linux/profile.h>
 #include <linux/rmap.h>
 #include <linux/acct.h>
+#include <linux/suspend.h>
 
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
@@ -1206,6 +1207,10 @@ long do_fork(unsigned long clone_flags,
 
 	if (pid < 0)
 		return -EAGAIN;
+
+	/* Is the refrigerator fully on? */
+	BUG_ON(test_suspend_state(SUSPEND_DISABLE_SYNCING));
+
 	if (unlikely(current->ptrace)) {
 		trace = fork_traceflag (clone_flags);
 		if (trace)

