diff --git a/moose-core/basecode/SparseMatrix.h b/moose-core/basecode/SparseMatrix.h
index 606f53ebebc6fd547adfc9aa8d0f5c8bd8ce41ae..a79d1ec59acff5c9b1b641aeeb35f18541911476 100644
--- a/moose-core/basecode/SparseMatrix.h
+++ b/moose-core/basecode/SparseMatrix.h
@@ -423,6 +423,19 @@ public:
                           colIndexArg.begin(), colIndexArg.end() );
         rowStart_[rowNum + 1] = N_.size();
     }
+	/// Here we expose the sparse matrix for MOOSE use.
+	const vector< T >& matrixEntry() const
+	{
+		return N_;
+	}
+	const vector< unsigned int >& colIndex() const
+	{
+		return colIndex_;
+	}
+	const vector< unsigned int >& rowStart() const
+	{
+		return rowStart_;
+	}
     //////////////////////////////////////////////////////////////////
     // Operations on entire matrix.
     //////////////////////////////////////////////////////////////////
diff --git a/moose-core/msg/SparseMsg.h b/moose-core/msg/SparseMsg.h
index 7df5e26f736cc69f1bf2804e3be6ee4c88a8cf79..3d7ba580a1c19cc6ea22e54b2202d41f2285228e 100644
--- a/moose-core/msg/SparseMsg.h
+++ b/moose-core/msg/SparseMsg.h
@@ -79,6 +79,11 @@ class SparseMsg: public Msg
 		double getProbability() const;
 		void setProbability( double value );
 
+                //
+                vector< unsigned int > getMatrixEntry() const;
+                vector< unsigned int > getColIndex() const;
+                vector< unsigned int > getRowStart() const;
+
 		long getSeed() const;
 		void setSeed( long value );