diff --git a/src/org/jitsi/impl/neomedia/HardwareVolumeControl.java b/src/org/jitsi/impl/neomedia/HardwareVolumeControl.java
index 33904495c0c744e7400e1783abc54ef8b02ace3e..ca48069191236be068fe67e07e84667861a86d35 100644
--- a/src/org/jitsi/impl/neomedia/HardwareVolumeControl.java
+++ b/src/org/jitsi/impl/neomedia/HardwareVolumeControl.java
@@ -214,6 +214,13 @@ protected float getInputDeviceVolume(String deviceUID)
     public float getVolume()
     {
         String deviceUID = getCaptureDeviceUID();
-        return this.getInputDeviceVolume(deviceUID);
+        float volume = this.getInputDeviceVolume(deviceUID);
+        // If the hardware voume for this device is not available, then switch
+        // to the software volume.
+        if(volume == -1)
+        {
+            volume = super.getVolume();
+        }
+        return volume;
     }
 }