diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog
index dfbbebb3830..71f5e6579af 100644
--- a/debug/org.eclipse.cdt.debug.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.core/ChangeLog
@@ -1,3 +1,14 @@
+2003-08-29 Mikhail Khodjaiants
+	Moving shared library features from mi to CDI.
+	Added new methods to ICDISharedLibraryManager:
+	- isAutoLoadSymbols
+	- isStopOnSolibEvents
+	- setAutoLoadSymbols
+	- setStopOnSolibEvents
+	- supportsAutoLoadSymbols
+	- supportsStopOnSolibEvents
+	* ICDISharedLibraryManager.java 
+
 2003-08-21 Mikhail Khodjaiants
 	Removed the 'isAccessSpecifier' method from CVaraiable.
 	* CArrayPartitionValue.java
diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
index 0c34a1e4af7..55ebe61d209 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog
@@ -1,3 +1,14 @@
+2003-08-29 Mikhail Khodjaiants
+	
+	Added new command - 'set stop-on-solib-events'.
+	 
+	* src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java
+	* src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java
+
+	Implementation of the new methods added to the 'ICDISharedLibraryManager' interface.
+	
+	* src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
+
 2003-08-26 Alain Magloire
 
 	This is still a hack: "info shared"  the real solution
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
index 99367b160c1..5318dd6f363 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
@@ -19,6 +19,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.model.SharedLibrary;
 import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
 import org.eclipse.cdt.debug.mi.core.command.MIGDBSetAutoSolib;
 import org.eclipse.cdt.debug.mi.core.command.MIGDBSetSolibSearchPath;
+import org.eclipse.cdt.debug.mi.core.command.MIGDBSetStopOnSolibEvents;
 import org.eclipse.cdt.debug.mi.core.command.MIGDBShow;
 import org.eclipse.cdt.debug.mi.core.command.MIGDBShowSolibSearchPath;
 import org.eclipse.cdt.debug.mi.core.command.MIInfoSharedLibrary;
@@ -168,6 +169,37 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib
 		return false;
 	}
 
+	public void setStopOnSolibEvents(boolean set) throws CDIException {
+		Session session = (Session)getSession();
+		MISession mi = session.getMISession();
+		CommandFactory factory = mi.getCommandFactory();
+		MIGDBSetStopOnSolibEvents stop = factory.createMIGDBSetStopOnSolibEvents(set);
+		try {
+			mi.postCommand(stop);
+			stop.getMIInfo();
+		} catch (MIException e) {
+			throw new MI2CDIException(e);
+		}
+	}
+
+	public boolean isStopOnSolibEvents() throws CDIException {
+		Session session = (Session)getSession();
+		MISession mi = session.getMISession();
+		CommandFactory factory = mi.getCommandFactory();
+		MIGDBShow show = factory.createMIGDBShow(new String[]{"stop-on-solib-events"});
+		try {
+			mi.postCommand(show);
+			MIGDBShowInfo info = show.getMIGDBShowInfo();
+			String value = info.getValue();
+			if (value != null) {
+				return value.equalsIgnoreCase("1");
+			}
+		} catch (MIException e) {
+			throw new MI2CDIException(e);
+		}
+		return false;
+	}
+
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#setSharedLibraryPaths(String[])
 	 */
@@ -268,4 +300,19 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib
 		autoupdate = update;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#supportsAutoLoadSymbols()
+	 */
+	public boolean supportsAutoLoadSymbols()
+	{
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager#supportsStopOnSolibEvents()
+	 */
+	public boolean supportsStopOnSolibEvents()
+	{
+		return true;
+	}
 }
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java
index 2b9790fbf46..2ef3145589c 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/CommandFactory.java
@@ -181,6 +181,10 @@ public class CommandFactory {
 		return new MIGDBSetAutoSolib(set);
 	}
 
+	public MIGDBSetStopOnSolibEvents createMIGDBSetStopOnSolibEvents(boolean set) {
+		return new MIGDBSetStopOnSolibEvents(set);
+	}
+
 	public MIGDBSetSolibSearchPath createMIGDBSetSolibSearchPath(String[] params) {
 		return new MIGDBSetSolibSearchPath(params);
 	}
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java
new file mode 100644
index 00000000000..976508e2c97
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/command/MIGDBSetStopOnSolibEvents.java
@@ -0,0 +1,20 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ * 
+ */
+
+package org.eclipse.cdt.debug.mi.core.command;
+
+/**
+ * 
+ *      -gdb-set stop-on-solib-events
+ *
+ *   Set an internal GDB variable.
+ * 
+ */
+public class MIGDBSetStopOnSolibEvents extends MIGDBSet {
+	public MIGDBSetStopOnSolibEvents(boolean isSet) {
+		super(new String[] {"stop-on-solib-events", (isSet) ? "1" : "0"});
+	}
+}