diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketReceiver.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketReceiver.java
index f677ea2..f68aa6b 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketReceiver.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketReceiver.java
@@ -57,12 +57,10 @@
 					}
 
 					long delta = end - begin;
-
-					if (delta < MIN_TIMEOUT) {
+					timeout -= delta;
+					if (timeout < MIN_TIMEOUT) {
 						break;
 					}
-
-					timeout = (int) delta;
 				}
 
 				return null;
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
index 7f96e77..a7d4a4e 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
@@ -357,7 +357,7 @@
 
 	public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta) {
 		try {
-			if (breakpoint instanceof IScriptBreakpoint) {
+			if (breakpoint instanceof IScriptBreakpoint && delta != null) {
 				final String[] attrs = ((IScriptBreakpoint) breakpoint)
 						.getUpdatableAttributes();
 				if (hasChanges(delta, attrs)) {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
index 88828a9..b489a38 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
@@ -95,8 +95,8 @@
 
 	public String[] getUpdatableAttributes() {
 		List all = new ArrayList();
-		Arrays.asList(super.getUpdatableAttributes());
-		Arrays.asList(UPDATABLE_ATTRS);
+		all.addAll(Arrays.asList(super.getUpdatableAttributes()));
+		all.addAll(Arrays.asList(UPDATABLE_ATTRS));
 		return (String[]) all.toArray(new String[all.size()]);
 	}
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptThreadManager.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptThreadManager.java
index 639543d..862d2bf 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptThreadManager.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptThreadManager.java
@@ -131,7 +131,10 @@
 		synchronized (threads) {
 			threads.remove(thread);
 			DebugEventHelper.fireTerminateEvent(thread);
-			thread.getStreamProxy().close();
+			IScriptThreadStreamProxy proxy = thread.getStreamProxy();
+			if (proxy != null) {
+				proxy.close();
+			}
 			if (!hasThreads()) {
 				fireAllThreadsTerminated();
 			}
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
index 73dddc2..603068f 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
@@ -84,8 +84,8 @@
 
 	public String[] getUpdatableAttributes() {
 		List all = new ArrayList();
-		Arrays.asList(super.getUpdatableAttributes());
-		Arrays.asList(UPDATABLE_ATTRS);
+		all.addAll(Arrays.asList(super.getUpdatableAttributes()));
+		all.addAll(Arrays.asList(UPDATABLE_ATTRS));
 		return (String[]) all.toArray(new String[all.size()]);
 	}
 }
