diff --git a/include/ITASpectrum.h b/include/ITASpectrum.h
index 6fd22093964c93e666dbbd0a3982545fdf47a07d..3e674d56c069c48410881fb1db21fa30e17415a6 100644
--- a/include/ITASpectrum.h
+++ b/include/ITASpectrum.h
@@ -95,6 +95,14 @@ public:
 
 	//! Set entire values of the spectrum by extrapolating range
 	void SetValuesExtrapolated( const std::vector< float >& vfProvidedFrequencies, const std::vector< float >& vfProvidedValues, const int iStrategy = ITABase::InterpolationFunctions::NONE );
+
+
+	CITASpectrum& operator*=(const float rhs);
+	CITASpectrum& operator*=(const CITASpectrum& rhs);
+	CITASpectrum& operator+=(const float rhs);
+	CITASpectrum& operator+=(const CITASpectrum& rhs);
+	CITASpectrum& operator-=(const float rhs);
+	CITASpectrum& operator-=(const CITASpectrum& rhs);
 	
 protected:
 	std::vector< float > m_vfValues; //!< Scalar spectrum values of any kind
diff --git a/src/ITASpectrum.cpp b/src/ITASpectrum.cpp
index f9c7599df66976566691a6b8574f8c6c1dde14f9..61a8d73359bbd7489249e457062f859fe152b151 100644
--- a/src/ITASpectrum.cpp
+++ b/src/ITASpectrum.cpp
@@ -194,6 +194,39 @@ void CITASpectrum::SetValuesExtrapolated( const std::vector< float >& vfProvided
 	}
 }
 
+
+CITASpectrum& CITASpectrum::operator*=(const float rhs)
+{
+	this->Multiply(rhs);
+	return *this;
+}
+CITASpectrum& CITASpectrum::operator*=(const CITASpectrum& rhs)
+{
+	this->Multiply(rhs);
+	return *this;
+}
+CITASpectrum& CITASpectrum::operator+=(const float rhs)
+{
+	this->Add(rhs);
+	return *this;
+}
+CITASpectrum& CITASpectrum::operator+=(const CITASpectrum& rhs)
+{
+	this->Add(rhs);
+	return *this;
+}
+CITASpectrum& CITASpectrum::operator-=(const float rhs)
+{
+	(*this) += (-rhs);
+	return *this;
+}
+CITASpectrum& CITASpectrum::operator-=(const CITASpectrum& rhs)
+{
+	this->Sub(rhs);
+	return *this;
+}
+
+
 std::ostream& operator<<( std::ostream& os, const CITASpectrum& oSpectrum )
 {
 	std::string sName = "Unnamed spectrum";