diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog
index 06e2ce5c220..2fc6ffe42b6 100644
--- a/debug/org.eclipse.cdt.debug.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.core/ChangeLog
@@ -1,3 +1,7 @@
+2006-05-31 Mikhail Khodjaiants
+	Bug 144719: [Modules view] Modules from from different sessions are mixed up.
+	* CDebugElement.java
+
 2006-05-29 Mikhail Khodjaiants
 	Bug 108472: Debug continues to fail.
 	* DebugCoreMessages.properties
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java
index b10c2e4432b..f23897cfa56 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java
@@ -21,6 +21,7 @@ import org.eclipse.cdt.debug.core.model.CDebugElementState;
 import org.eclipse.cdt.debug.core.model.ICDebugElement;
 import org.eclipse.cdt.debug.core.model.ICDebugElementStatus;
 import org.eclipse.cdt.debug.core.model.ICDebugTarget;
+import org.eclipse.cdt.debug.core.model.IModuleRetrieval;
 import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.PlatformObject;
@@ -307,6 +308,8 @@ abstract public class CDebugElement extends PlatformObject implements ICDebugEle
 		// See bug #100261
 		if ( adapter.equals( IMemoryBlockRetrieval.class ) )
 			return getDebugTarget().getAdapter( adapter );
+		if ( adapter.equals( IModuleRetrieval.class ) )
+			return getDebugTarget().getAdapter( adapter );
 		if ( adapter.equals( ILaunch.class ) )
 			return getDebugTarget().getLaunch();
 		return super.getAdapter( adapter );
diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index 71e83553222..4918ec67f80 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,3 +1,7 @@
+2006-05-31 Mikhail Khodjaiants
+	Bug 144719: [Modules view] Modules from from different sessions are mixed up.
+	* ModulesViewEventHandler.java
+
 2006-05-31 Mikhail Khodjaiants
 	Bug 144684: [Modules view] Collapse all action doesn't work.
 	* CollapseAllModulesAction.java
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java
index d08e49145f7..44827c03980 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java
@@ -58,11 +58,15 @@ public class ModulesViewEventHandler extends DebugEventHandler {
 	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#handleCreate(org.eclipse.debug.core.DebugEvent)
 	 */
 	protected void handleCreate( DebugEvent event ) {
-		if ( event.getSource() instanceof IDebugTarget ) {
+		Object source = event.getSource();
+		if ( source instanceof IDebugTarget ) {
 			refreshRoot( event );
 		}
-		else if ( event.getSource() instanceof ICModule ) {
-			fireDelta( (ICModule)event.getSource(), IModelDelta.ADDED );
+		else if ( source instanceof ICModule ) {
+			if ( accept( (ICModule)source ) ) {
+				ICModule module = (ICModule)source;
+				fireDelta( module, IModelDelta.ADDED );
+			}
 		}
 	}
 
@@ -70,11 +74,12 @@ public class ModulesViewEventHandler extends DebugEventHandler {
 	 * @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#handleTerminate(org.eclipse.debug.core.DebugEvent)
 	 */
 	protected void handleTerminate( DebugEvent event ) {
-		if ( event.getSource() instanceof IDebugTarget ) {
+		Object source = event.getSource();
+		if ( source instanceof IDebugTarget ) {
 			refreshRoot( event );
 		}
-		else if ( event.getSource() instanceof ICModule ) {
-			fireDelta( (ICModule)event.getSource(), IModelDelta.REMOVED );
+		else if ( source instanceof ICModule ) {
+			fireDelta( (ICModule)source, IModelDelta.REMOVED );
 		}
 	}
 
@@ -91,4 +96,8 @@ public class ModulesViewEventHandler extends DebugEventHandler {
 		super.dispose();
 		fModuleRetrieval = null;
 	}
+
+	private boolean accept( ICModule module ) {
+		return fModuleRetrieval.equals( module.getAdapter( IModuleRetrieval.class ) );
+	}
 }