Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/OSeaM.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/OSeaM.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/OSeaM.java	(revision 23443)
@@ -13,4 +13,5 @@
 	private OSeaMAction osm = null;
 	public SmedPluginManager manager = null;
+	private int index = -1;
 	
 	@Override
@@ -57,4 +58,24 @@
 	}
 
+	@Override
+	public boolean hasFocus() {
+		osm.hasFocus = true;
+		osm.setQueued();
+		System.out.println("OSeaM has Focus");
+		return true;
+	}
+
+	@Override
+	public boolean lostFocus() {
+		osm.setDequeued();
+		return true;
+	}
+
+	@Override
+	public int getIndex() { return index; }
+
+	@Override
+	public void setIndex(int index) { this.index = index; }
+
 
 }
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 23443)
@@ -64,4 +64,5 @@
 	private String Os = ""; // @jve:decl-index=0: //$NON-NLS-1$
 	private String UserHome = ""; // @jve:decl-index=0: //$NON-NLS-1$
+	public boolean hasFocus = false;
 
 	// SelectionChangedListner der in die Eventqueue von josm eingehängt wird
@@ -228,8 +229,18 @@
 		// siehe org.openstreetmap.josm.plugins.osb -> OsbLayer.java
 		// Einhängen des Listeners in die Eventqueue von josm
+		if(hasFocus) DataSet.addSelectionListener(SmpListener);
+		
+	}
+	
+	public void setQueued() {
+		System.out.println("OSeaM is queued");
 		DataSet.addSelectionListener(SmpListener);
-		
-	}
-	
+	}
+
+	public void setDequeued() {
+		System.out.println("OSeaM is dequeued");
+		DataSet.removeSelectionListener(SmpListener);
+	}
+
 	private void PicRebuild() {
 
@@ -1404,3 +1415,4 @@
 		return sM01StatusBar;
 	}
+
 }
Index: applications/editors/josm/plugins/smed/plugs/smed_about/src/smed_about/SmedAbout.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/smed_about/src/smed_about/SmedAbout.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/plugs/smed_about/src/smed_about/SmedAbout.java	(revision 23443)
@@ -14,4 +14,5 @@
 
 	private boolean visible = true;
+	private int index = -1;
 	
     private JPanel jPanel = null;  //  @jve:decl-index=0:visual-constraint="43,24"
@@ -89,3 +90,21 @@
 		return null;
 	}
+
+	@Override
+	public boolean hasFocus() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean lostFocus() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public int getIndex() { return index; }
+
+	@Override
+	public void setIndex(int index) { this.index = index; }
 }
Index: applications/editors/josm/plugins/smed/plugs/smed_ex/src/smed_ex/SmedEx.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/smed_ex/src/smed_ex/SmedEx.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/plugs/smed_ex/src/smed_ex/SmedEx.java	(revision 23443)
@@ -19,4 +19,5 @@
 	private boolean visible = true;
 	public SmedPluginManager manager = null;
+	private int index = -1;
 	
     private JPanel jPanel = null;  //  @jve:decl-index=0:visual-constraint="78,30"
@@ -105,3 +106,21 @@
 		return null;
 	}
+
+	@Override
+	public boolean hasFocus() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean lostFocus() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public int getIndex() { return index; }
+
+	@Override
+	public void setIndex(int index) { this.index = index; }
 }
Index: applications/editors/josm/plugins/smed/src/smed/plug/ifc/SmedPluggable.java
===================================================================
--- applications/editors/josm/plugins/smed/src/smed/plug/ifc/SmedPluggable.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/src/smed/plug/ifc/SmedPluggable.java	(revision 23443)
@@ -9,4 +9,8 @@
     boolean start();
     boolean stop();
+    boolean hasFocus();
+    boolean lostFocus();
+    int getIndex();
+    void setIndex(int index);
     String getName();
     String getFileName();
Index: applications/editors/josm/plugins/smed/src/smed/tabs/SmedTabbedPane.java
===================================================================
--- applications/editors/josm/plugins/smed/src/smed/tabs/SmedTabbedPane.java	(revision 23442)
+++ applications/editors/josm/plugins/smed/src/smed/tabs/SmedTabbedPane.java	(revision 23443)
@@ -32,4 +32,6 @@
 	static private List<SmedPluggable> plugins = null;
 	static private JTabbedPane tabbedPane = null;
+	@SuppressWarnings("unused")
+	private int activeIndex = -1;
 	
     public SmedTabbedPane() {
@@ -42,15 +44,8 @@
 
             if(plugins != null) {
+
+            	if(tabbedPane == null) tabbedPane = new JTabbedPane();
+
             	ImageIcon icon = null;
-            	if(tabbedPane == null) { 
-            		tabbedPane = new JTabbedPane();
-            		tabbedPane.addChangeListener(new ChangeListener() {
-
-						@Override
-						public void stateChanged(ChangeEvent event) {
-							System.out.println("hello world");
-						}
-            		});
-            	}
 
             	JComponent panel;
@@ -68,4 +63,9 @@
             			tabbedPane.addTab(p.getName(),icon, panel, p.getInfo());
             			tabbedPane.setMnemonicAt(i, KeyEvent.VK_1 + i);
+            			if(i == 0) { 
+            				p.hasFocus();
+            				activeIndex = 0;
+            			}
+            			p.setIndex(i);
                     	
             			i++;
@@ -80,4 +80,26 @@
             	//The following line enables to use scrolling tabs.
             	tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
+            	
+            	// add ChangeListener
+            	tabbedPane.addChangeListener(new ChangeListener() {
+
+					@Override
+					public void stateChanged(ChangeEvent event) {
+						System.out.println("hello world");
+						System.out.println("activeIndex:\t" + activeIndex);
+						JTabbedPane pane = (JTabbedPane) event.getSource();
+						
+						for(SmedPluggable p : plugins) {
+							if(p.getIndex() == activeIndex) p.lostFocus();
+						}
+						
+						System.out.println(pane.getSelectedIndex());
+						activeIndex = pane.getSelectedIndex();
+						for(SmedPluggable p : plugins) {
+							if(p.getIndex() == activeIndex) p.hasFocus();
+						}
+					}
+            	});
+
         	}
         } catch (IOException e) {
@@ -89,11 +111,3 @@
     public static List<SmedPluggable> getPlugins() { return plugins; }
     public static JTabbedPane getTabbedPane() { return tabbedPane; }
-
-    /*
-	@Override
-	public void stateChanged(ChangeEvent event) {
-		System.out.println("hello world");
-		
-	}
-	*/
 }
