diff --git a/PlayWall/.classpath b/PlayWall/.classpath
index a8ad48e81f02fb008bf288df3ca4de61c39311b2..699df52ee1484cd3ff1d0e90b1598192c13e1cb3 100644
--- a/PlayWall/.classpath
+++ b/PlayWall/.classpath
@@ -15,5 +15,6 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JLayer"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/PlayWallCore"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/PlayWallNative"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/PlayWall/src/de/tobias/playpad/PlayPadImpl.java b/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
index 83b0ae9f158a67dd7b75e20541b165c2d9be331b..e4ffc6b916771f52336f46f31cd9b537cf5720e4 100644
--- a/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
+++ b/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
@@ -235,6 +235,8 @@ public class PlayPadImpl implements PlayPad {
 			registryCollection.getTriggerItems().loadComponentsFromFile("de/tobias/playpad/components/Trigger.xml");
 			registryCollection.getMainLayouts().loadComponentsFromFile("de/tobias/playpad/components/Layout.xml");
 
+			registryCollection.getAudioHandlers().registerComponent(new NativeAudioMacHandlerConnect(), "Native");
+			
 			// Set Default
 			registryCollection.getAudioHandlers().setDefaultID(JavaFXAudioHandler.TYPE);
 			registryCollection.getDesigns().setDefaultID(ModernGlobalDesign.TYPE);
diff --git a/PlayWallNative/libNativeAudio.dylib b/PlayWallNative/libNativeAudio.dylib
deleted file mode 100755
index af9683034b4ac9019e84a3b0edde7f700584143c..0000000000000000000000000000000000000000
Binary files a/PlayWallNative/libNativeAudio.dylib and /dev/null differ
diff --git a/PlayWallNative/src/de/tobias/playpad/NativeAudio.java b/PlayWallNative/src/de/tobias/playpad/NativeAudio.java
index a3b74ed8c5121097d5f5a24b7d93a88830eff16a..ae297856500d6b062a9884fea8658e75c9e1ba02 100644
--- a/PlayWallNative/src/de/tobias/playpad/NativeAudio.java
+++ b/PlayWallNative/src/de/tobias/playpad/NativeAudio.java
@@ -2,6 +2,8 @@ package de.tobias.playpad;
 
 public class NativeAudio {
 
+	public static native void initialize();
+	
 	public static native void play(int id);
 
 	public static native void pause(int id);
@@ -9,9 +11,9 @@ public class NativeAudio {
 	public static native void stop(int id);
 
 	public static native void setLoop(int id, boolean loop);
-	
+
 	public static native double getVolume(int id);
-	
+
 	public static native void setVolume(int id, double volume);
 
 	public static native boolean load(int id, String path);
@@ -19,6 +21,22 @@ public class NativeAudio {
 	public static native void dispose(int id);
 
 	public static native double getDuration(int id);
-	
+
 	public static native double getPosition(int id);
+
+	public static void onFinish(int id) {
+		if (delegate != null) {
+			delegate.onFinish(id);
+		}
+	}
+
+	private static NativeAudioDelegate delegate;
+
+	public static void setDelegate(NativeAudioDelegate delegate) {
+		NativeAudio.delegate = delegate;
+	}
+
+	public interface NativeAudioDelegate {
+		public void onFinish(int id);
+	}
 }
diff --git a/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandler.java b/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandler.java
index 174c3281de00777fadbea9f816a00eba3d42e9b7..2ff8be3af4704f216d3e84fa32c99c7161a3961e 100644
--- a/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandler.java
+++ b/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandler.java
@@ -59,13 +59,17 @@ public class NativeAudioMacHandler extends AudioHandler {
 
 		positionThread.start();
 	}
-
+	
 	public NativeAudioMacHandler(PadContent content) {
 		super(content);
 
 		id = counter++;
 		positionProperty = new SimpleObjectProperty<>();
-		durationProperty = new SimpleObjectProperty<>();
+		durationProperty = new SimpleObjectProperty<>();		
+	}
+	
+	protected int getId() {
+		return id;
 	}
 
 	@Override
@@ -161,5 +165,4 @@ public class NativeAudioMacHandler extends AudioHandler {
 	public void unloadMedia() {
 		NativeAudio.dispose(id);
 	}
-
 }
diff --git a/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandlerConnect.java b/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandlerConnect.java
index 18f7a20bde755ac701e2de1d727d658c18ecc2b5..6b70456aed4275c6d4909b6e56a0b48c59636001 100644
--- a/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandlerConnect.java
+++ b/PlayWallNative/src/de/tobias/playpad/NativeAudioMacHandlerConnect.java
@@ -1,15 +1,28 @@
 package de.tobias.playpad;
 
+import java.util.HashMap;
+
+import de.tobias.playpad.NativeAudio.NativeAudioDelegate;
 import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.AudioHandlerConnect;
+import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.conntent.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
 
-public class NativeAudioMacHandlerConnect extends AudioHandlerConnect {
+public class NativeAudioMacHandlerConnect extends AudioHandlerConnect implements NativeAudioDelegate {
+
+	private static final HashMap<Integer, NativeAudioMacHandler> handlers = new HashMap<>();
+
+	public NativeAudioMacHandlerConnect() {
+		NativeAudio.initialize();
+		NativeAudio.setDelegate(this);
+	}
 
 	@Override
 	public AudioHandler createAudioHandler(PadContent content) {
-		return new NativeAudioMacHandler(content);
+		NativeAudioMacHandler nativeAudioMacHandler = new NativeAudioMacHandler(content);
+		handlers.put(nativeAudioMacHandler.getId(), nativeAudioMacHandler);
+		return nativeAudioMacHandler;
 	}
 
 	@Override
@@ -22,4 +35,14 @@ public class NativeAudioMacHandlerConnect extends AudioHandlerConnect {
 		return "Native";
 	}
 
+	@Override
+	public void onFinish(int id) {
+		NativeAudioMacHandler nativeAudioMacHandler = handlers.get(id);
+		if (nativeAudioMacHandler != null) {
+			PadContent content = nativeAudioMacHandler.getContent();
+			if (content != null) {
+				content.getPad().setStatus(PadStatus.STOP);
+			}
+		}
+	}
 }