diff --git a/firmware/application/apps/analog_audio_app.cpp b/firmware/application/apps/analog_audio_app.cpp
index 4f3d724ab733f5aadc388b1ada54f8ce99d8ad75..3c67df0ab8082573c3d59b634b66a080b6ce1b45 100644
--- a/firmware/application/apps/analog_audio_app.cpp
+++ b/firmware/application/apps/analog_audio_app.cpp
@@ -338,7 +338,8 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) {
 	record_view.set_sampling_rate(sampling_rate);
 
 	if( !is_wideband_spectrum_mode ) {
-		audio::output::unmute();
+		//audio::output::unmute();
+		portapack::set_speaker_mode(portapack::speaker_mode); //Now depends on speaker mode
 	}
 }
 
diff --git a/firmware/application/apps/ui_scanner.cpp b/firmware/application/apps/ui_scanner.cpp
index 26c00728662ef863bf9d2b704c3c0fa8352feabd..5bbefc3856ceceaf5b7f5ef728ced6bcad139412 100644
--- a/firmware/application/apps/ui_scanner.cpp
+++ b/firmware/application/apps/ui_scanner.cpp
@@ -174,7 +174,7 @@ ScannerView::ScannerView(
 	
 	audio::output::start();
 	
-	audio::output::mute();
+	//audio::output::mute(); //No need for this
 	baseband::run_image(portapack::spi_flash::image_tag_nfm_audio);
 	receiver_model.set_modulation(ReceiverModel::Mode::NarrowbandFMAudio);
 	receiver_model.set_sampling_rate(3072000);
@@ -182,7 +182,7 @@ ScannerView::ScannerView(
 	receiver_model.enable();
 	receiver_model.set_squelch_level(0);
 	receiver_model.set_nbfm_configuration(field_bw.selected_index());
-	audio::output::unmute();
+	//audio::output::unmute(); //No need for this
 	
 	// TODO: Scanning thread here
 	scan_thread = std::make_unique<ScannerThread>(frequency_list);
diff --git a/firmware/application/audio.cpp b/firmware/application/audio.cpp
index 4ba23accf393dfb3cc3241b0a54b1c1f7d820543..88f6585984f9b4210881c679c26df8b858db2210 100644
--- a/firmware/application/audio.cpp
+++ b/firmware/application/audio.cpp
@@ -136,11 +136,16 @@ namespace output {
 
 void start() {
 	i2s::i2s0::tx_start();
-	unmute();
+	//unmute();
+	portapack::set_speaker_mode(portapack::speaker_mode); //Now depends on speaker mode
 }
 
 void stop() {
-	mute();
+	//mute();  //Now it depends on speaker mode
+	if (portapack::speaker_mode)
+ 		speaker_mute();
+ 	else
+ 		mute();   //Mute headphones
 	i2s::i2s0::tx_stop();
 }
 
diff --git a/firmware/application/portapack.cpp b/firmware/application/portapack.cpp
index 99843aec31759b333243fde6c0eae784e81de24e..99bf2eccb26020231632683ced4a739d39e255c5 100644
--- a/firmware/application/portapack.cpp
+++ b/firmware/application/portapack.cpp
@@ -97,9 +97,15 @@ bool speaker_mode { false };
  void set_speaker_mode(const bool v) {
  	speaker_mode = v;
  	if (speaker_mode)
+	{
+	 	audio::output::mute();   //Mute headphones
  		audio::output::speaker_unmute();
+	}
  	else
+	 {
  		audio::output::speaker_mute();
+		audio::output::unmute(); //Unmute headphones
+	 }
  }
 
 static constexpr uint32_t systick_count(const uint32_t clock_source_f) {