diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/DataArea.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/DataArea.java
index 51f9ffb..b33faf3 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/DataArea.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/DataArea.java
@@ -79,8 +79,10 @@
 		if (!isInstanceDataLocationInitiliazed()) {
 			return getTemporaryLogLocation();
 		}
-		if (tmpLog != null)
+		if (tmpLog != null) {
 			copyOldLog(getTemporaryLogLocation(), getMetadataLocation().append(F_LOG));
+			tmpLog = null;
+		}
 		return getMetadataLocation().append(F_LOG);
 	}
 	protected IPath getTemporaryLogLocation() {
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java
index 669934e..b60f4e0 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java
@@ -471,7 +471,7 @@
 		options = (DebugOptions) debugTracker.getService(); //TODO This is not good, but is avoids problems
 		initializeDebugFlags();
 		initialized = true;
-		platformLog = new PlatformLogWriter(getMetaArea().getLogLocation().toFile());
+		platformLog = new PlatformLogWriter();
 		addLogListener(platformLog);
 		if ("true".equals(System.getProperty("eclipse.consoleLog"))) {
 			consoleLog = new PlatformLogWriter(System.out);
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/PlatformLogWriter.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/PlatformLogWriter.java
index c8189d1..234cca6 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/PlatformLogWriter.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/PlatformLogWriter.java
@@ -40,8 +40,7 @@
 		LINE_SEPARATOR = s == null ? "\n" : s; //$NON-NLS-1$
 	}
 
-	public PlatformLogWriter(File file) {
-		this.logFile = file;
+	public PlatformLogWriter() {
 	}
 	/**
 	 * This constructor should only be used to pass System.out .
@@ -64,8 +63,8 @@
 	 */
 	public synchronized void logging(IStatus status, String plugin) {
 		// thread safety: (Concurrency003)
-		if (logFile != null)
-			openLogFile();
+		setLogFileLocation();
+		openLogFile();
 		if (log == null)
 			log = logForStream(System.err);
 		try {
@@ -92,8 +91,12 @@
 			}
 		} finally {
 			log = null;
+			logFile = null;
 		}
 	}
+	protected void setLogFileLocation() {
+		logFile = InternalPlatform.getDefault().getMetaArea().getLogLocation().toFile();
+	}
 	protected void openLogFile() {
 		try {
 			log = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile.getAbsolutePath(), true), "UTF-8")); //$NON-NLS-1$
