diff --git a/lib/source_impl.cc b/lib/source_impl.cc
index a5da6728f436fb21703a8cb5fb3b2b66cd851ac4..01488365453a76ede8af638af434f05a3849e309 100644
--- a/lib/source_impl.cc
+++ b/lib/source_impl.cc
@@ -189,6 +189,18 @@ namespace gr {
                     device_->set_gain(gain,name,chan) : 0;
     }
 
+    double source_impl::get_gain(size_t chan)
+    {
+        return chan < get_num_channels() ?
+                    device_->get_gain(chan) : 0;
+    }
+
+    double source_impl::get_gain(const std::string &name, size_t chan)
+    {
+        return chan < get_num_channels() ?
+                    device_->get_gain(name, chan) : 0;
+    }
+
     double source_impl::set_if_gain(double gain, size_t chan)
     {
         return 0;
diff --git a/lib/source_impl.h b/lib/source_impl.h
index 706bf40e47cdb0b20014d3d1bba014b38120cfea..36d4722668b792e674a15566534e6b35a9beddf0 100644
--- a/lib/source_impl.h
+++ b/lib/source_impl.h
@@ -72,7 +72,7 @@ namespace gr {
                                const std::string & name,
                                size_t chan = 0 ) override;
 
-      double get_gain( size_t chan = 0 )override;
+      double get_gain( size_t chan = 0 ) override;
 
       double get_gain( const std::string & name, size_t chan = 0 ) override;