diff --git a/src/org/jitsi/impl/neomedia/CoreAudioDevice.java b/src/org/jitsi/impl/neomedia/CoreAudioDevice.java
index 4c1529275a66c2f5bf5f962116eada8342c76ad5..a96757e3bab34263ffefd2e88ac8d3d993fb79a5 100644
--- a/src/org/jitsi/impl/neomedia/CoreAudioDevice.java
+++ b/src/org/jitsi/impl/neomedia/CoreAudioDevice.java
@@ -15,20 +15,32 @@
  */
 public class CoreAudioDevice
 {
+    /**
+     * Loads CoreAudioDevice if we are using MacOsX or Windows Vista/7/8.
+     */
     static
     {
+        isLoaded = false;
         if(OSUtils.IS_MAC)
         {
             System.loadLibrary("jnmaccoreaudio");
+            isLoaded = true;
         }
         else if(OSUtils.IS_WINDOWS_VISTA
                 || OSUtils.IS_WINDOWS_7
                 || OSUtils.IS_WINDOWS_8)
         {
             System.loadLibrary("jnwincoreaudio");
+            isLoaded = true;
         }
     }
 
+    /**
+     * Tells if the CoreAudio library used by this CoreAudioDevice is correctly
+     * loaded: if we are under a supported operating system.
+     */
+    public static boolean isLoaded;
+
     public static native int initDevices();
 
     public static native void freeDevices();
diff --git a/src/org/jitsi/impl/neomedia/device/PortAudioSystem.java b/src/org/jitsi/impl/neomedia/device/PortAudioSystem.java
index 104bf1b118df3e0274eb6eabf6f37a0f1b584882..d0abdc65896559e8f841811489b59829502c40e0 100644
--- a/src/org/jitsi/impl/neomedia/device/PortAudioSystem.java
+++ b/src/org/jitsi/impl/neomedia/device/PortAudioSystem.java
@@ -264,7 +264,8 @@ protected void doInitialize()
             = new LinkedList<ExtendedCaptureDeviceInfo>();
         final boolean loggerIsDebugEnabled = logger.isDebugEnabled();
 
-        CoreAudioDevice.initDevices();
+        if(CoreAudioDevice.isLoaded)
+            CoreAudioDevice.initDevices();
         for (int deviceIndex = 0; deviceIndex < deviceCount; deviceIndex++)
         {
             long deviceInfo = Pa.GetDeviceInfo(deviceIndex);
@@ -281,8 +282,10 @@ protected void doInitialize()
                 = Pa.DeviceInfo_getTransportType(deviceInfo);
             String deviceUID
                 = Pa.DeviceInfo_getDeviceUID(deviceInfo);
-            String modelIdentifier
-                = CoreAudioDevice.getDeviceModelIdentifier(deviceUID);
+            String modelIdentifier = null;
+            if(CoreAudioDevice.isLoaded)
+                modelIdentifier
+                    = CoreAudioDevice.getDeviceModelIdentifier(deviceUID);
 
             /*
              * TODO The intention of reinitialize() was to perform the
@@ -398,7 +401,8 @@ else if (maxOutputChannels > 0)
                 }
             }
         }
-        CoreAudioDevice.freeDevices();
+        if(CoreAudioDevice.isLoaded)
+            CoreAudioDevice.freeDevices();
 
         /*
          * Make sure that devices which support both capture and playback are