small fixes
diff --git a/Eigen/src/Array/VectorwiseOp.h b/Eigen/src/Array/VectorwiseOp.h
index 3684d7c..fa09589 100644
--- a/Eigen/src/Array/VectorwiseOp.h
+++ b/Eigen/src/Array/VectorwiseOp.h
@@ -355,10 +355,22 @@
 
 /////////// Artithmetic operators ///////////
 
+    /** Copies the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator=(const MatrixBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      //ei_assert((m_matrix.isNull()) == (other.isNull())); FIXME
+      for(int j=0; j<subVectors(); ++j)
+        subVector(j) = other;
+      return const_cast<ExpressionType&>(m_matrix);
+    }
+
     /** Adds the vector \a other to each subvector of \c *this */
     template<typename OtherDerived>
     ExpressionType& operator+=(const MatrixBase<OtherDerived>& other)
     {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
       for(int j=0; j<subVectors(); ++j)
         subVector(j) += other;
       return const_cast<ExpressionType&>(m_matrix);
@@ -368,6 +380,7 @@
     template<typename OtherDerived>
     ExpressionType& operator-=(const MatrixBase<OtherDerived>& other)
     {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
       for(int j=0; j<subVectors(); ++j)
         subVector(j) -= other;
       return const_cast<ExpressionType&>(m_matrix);
diff --git a/Eigen/src/Core/Fuzzy.h b/Eigen/src/Core/Fuzzy.h
index a882981..e104463 100644
--- a/Eigen/src/Core/Fuzzy.h
+++ b/Eigen/src/Core/Fuzzy.h
@@ -49,7 +49,7 @@
 template<typename OtherDerived>
 bool MatrixBase<Derived>::isApprox(
   const MatrixBase<OtherDerived>& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   const typename ei_nested<Derived,2>::type nested(derived());
@@ -73,7 +73,7 @@
 template<typename Derived>
 bool MatrixBase<Derived>::isMuchSmallerThan(
   const typename NumTraits<Scalar>::Real& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   return cwise().abs2().sum() <= prec * prec * other * other;
@@ -93,7 +93,7 @@
 template<typename OtherDerived>
 bool MatrixBase<Derived>::isMuchSmallerThan(
   const MatrixBase<OtherDerived>& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   return this->cwise().abs2().sum() <= prec * prec * other.cwise().abs2().sum();
@@ -124,7 +124,7 @@
 template<typename OtherDerived>
 bool MatrixBase<Derived>::isApprox(
   const MatrixBase<OtherDerived>& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   return ei_fuzzy_selector<Derived,OtherDerived>::isApprox(derived(), other.derived(), prec);
@@ -143,7 +143,7 @@
 template<typename Derived>
 bool MatrixBase<Derived>::isMuchSmallerThan(
   const typename NumTraits<Scalar>::Real& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   return ei_fuzzy_selector<Derived>::isMuchSmallerThan(derived(), other, prec);
@@ -163,7 +163,7 @@
 template<typename OtherDerived>
 bool MatrixBase<Derived>::isMuchSmallerThan(
   const MatrixBase<OtherDerived>& other,
-  typename NumTraits<Scalar>::Real prec
+  RealScalar prec
 ) const
 {
   return ei_fuzzy_selector<Derived,OtherDerived>::isMuchSmallerThan(derived(), other.derived(), prec);