--- ./src/init.c.orig	2005-08-04 19:50:25.000000000 -0400
+++ ./src/init.c	2005-08-04 19:51:58.000000000 -0400
@@ -208,11 +208,16 @@
 	FILE *cfg;
 	char buf[4096];
 	int seconfig = -2;
+	int we_mounted_proc = 0;
 	
 	selinux_getenforcemode(&seconfig);
 
-	mount("none", "/proc", "proc", 0, 0);
 	cfg = fopen("/proc/cmdline","r");
+	if (!cfg) {
+		mount("none", "/proc", "proc", 0, 0);
+		we_mounted_proc = 1;
+		cfg = fopen("/proc/cmdline","r");
+	}
 	if (cfg) {
 		char *tmp;
 		if (fgets(buf,4096,cfg) && (tmp = strstr(buf,"enforcing="))) {
@@ -223,7 +228,8 @@
 		fclose(cfg);
 	}
 #define MNT_DETACH 2
-	umount2("/proc",MNT_DETACH);
+	if (we_mounted_proc)
+		umount2("/proc",MNT_DETACH);
 	
 	if (enforcing >=0)
 		*enforce = enforcing;

