diff --git a/src/AudioPrefsVC.mm b/src/AudioPrefsVC.mm
index c0a19ef..9c961db 100644
--- a/src/AudioPrefsVC.mm
+++ b/src/AudioPrefsVC.mm
@@ -56,17 +56,17 @@
     auto inputDevices = avModel->getAudioInputDevices();
     auto inputDevice = avModel->getInputDevice();
     for (auto device : inputDevices) {
-        [inputDeviceList addItemWithTitle: @(device.c_str())];
+        [inputDeviceList addItemWithTitle: device.toNSString()];
         if(device == inputDevice) {
-            [inputDeviceList selectItemWithTitle:@(inputDevice.c_str())];
+            [inputDeviceList selectItemWithTitle:inputDevice.toNSString()];
         }
     }
     auto outputDevices = avModel->getAudioOutputDevices();
     auto outputDevice = avModel->getOutputDevice();
     for (auto device : outputDevices) {
-        [outputDeviceList addItemWithTitle: @(device.c_str())];
+        [outputDeviceList addItemWithTitle: device.toNSString()];
         if(device == outputDevice) {
-            [outputDeviceList selectItemWithTitle:@(outputDevice.c_str())];
+            [outputDeviceList selectItemWithTitle:outputDevice.toNSString()];
         }
     }
 }
@@ -87,13 +87,13 @@
 - (IBAction)chooseOutput:(id)sender {
     int index = [sender indexOfSelectedItem];
     auto output = [self.outputDeviceList itemTitleAtIndex:index];
-    avModel->setOutputDevice([output UTF8String]);
+    avModel->setOutputDevice(QString::fromNSString(output));
 }
 
 - (IBAction)chooseInput:(id)sender {
     int index = [sender indexOfSelectedItem];
     auto input = [self.inputDeviceList itemTitleAtIndex:index];
-    avModel->setInputDevice([input UTF8String]);
+    avModel->setInputDevice(QString::fromNSString(input));
 }
 
 @end
