--- banshee-2.2.1/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs.orig	2011-11-01 21:42:15.000000000 +0100
+++ banshee-2.2.1/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs	2012-03-13 16:55:31.868555730 +0100
@@ -62,11 +62,15 @@
             base.DeviceInitialize (device);
 
             volume = device as IVolume;
-            if (volume == null || !volume.IsMounted || (usb_device = volume.ResolveRootUsbDevice ()) == null) {
+            if (volume == null || !volume.IsMounted) {
                 throw new InvalidDeviceException ();
             }
+	    usb_device = volume.ResolveRootUsbDevice ();
+
+	    if (usb_device != null) {
+		ms_device = DeviceMapper.Map (this);
+	    }
 
-            ms_device = DeviceMapper.Map (this);
             try {
                 if (ms_device.ShouldIgnoreDevice () || !ms_device.LoadDeviceConfiguration ()) {
                     ms_device = null;
@@ -75,7 +79,7 @@
                 ms_device = null;
             }
 
-            if (!HasMediaCapabilities && ms_device == null) {
+            if (!HasMediaCapabilities && ms_device == null && usb_device != null) {
                 throw new InvalidDeviceException ();
             }
 
