diff --git a/Gruntfile.js b/Gruntfile.js
index 1843abb7..58006c80 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -139,6 +139,7 @@ module.exports = function (grunt) {
'src/physics/Body.js',
'src/physics/Spring.js',
'src/physics/Material.js',
+ 'src/physics/ContactMaterial.js',
'src/particles/Particles.js',
'src/particles/arcade/ArcadeParticles.js',
diff --git a/build/config.php b/build/config.php
index dd2912da..3940453f 100644
--- a/build/config.php
+++ b/build/config.php
@@ -185,6 +185,7 @@
+
diff --git a/src/physics/ContactMaterial.js b/src/physics/ContactMaterial.js
new file mode 100644
index 00000000..486f8558
--- /dev/null
+++ b/src/physics/ContactMaterial.js
@@ -0,0 +1,64 @@
+/**
+* @author Richard Davey
+* @copyright 2014 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
+/**
+* Defines a physics material
+*
+* @class Phaser.Physics.ContactMaterial
+* @classdesc Physics ContactMaterial Constructor
+* @constructor
+* @param {Phaser.Physics.Material} materialA
+* @param {Phaser.Physics.Material} materialB
+* @param {object} [options]
+*/
+Phaser.Physics.ContactMaterial = function (materialA, materialB, options) {
+
+ /**
+ * @property {number} id - The contact material identifier.
+ */
+
+ /**
+ * @property {Phaser.Physics.Material} materialA - First material participating in the contact material.
+ */
+
+ /**
+ * @property {Phaser.Physics.Material} materialB - First second participating in the contact material.
+ */
+
+ /**
+ * @property {number} [friction=0.3] - Friction to use in the contact of these two materials.
+ */
+
+ /**
+ * @property {number} [restitution=0.0] - Restitution to use in the contact of these two materials.
+ */
+
+ /**
+ * @property {number} [stiffness=1e7] - Stiffness of the resulting ContactEquation that this ContactMaterial generate.
+ */
+
+ /**
+ * @property {number} [relaxation=3] - Relaxation of the resulting ContactEquation that this ContactMaterial generate.
+ */
+
+ /**
+ * @property {number} [frictionStiffness=1e7] - Stiffness of the resulting FrictionEquation that this ContactMaterial generate.
+ */
+
+ /**
+ * @property {number} [frictionRelaxation=3] - Relaxation of the resulting FrictionEquation that this ContactMaterial generate.
+ */
+
+ /**
+ * @property {number} [surfaceVelocity=0] - Will add surface velocity to this material. If bodyA rests on top if bodyB, and the surface velocity is positive, bodyA will slide to the right.
+ */
+
+ p2.ContactMaterial.call(this, materialA, materialB, options);
+
+}
+
+Phaser.Physics.ContactMaterial.prototype = Object.create(p2.ContactMaterial.prototype);
+Phaser.Physics.ContactMaterial.prototype.constructor = Phaser.Physics.ContactMaterial;
diff --git a/src/physics/Material.js b/src/physics/Material.js
index e69de29b..6560e7b2 100644
--- a/src/physics/Material.js
+++ b/src/physics/Material.js
@@ -0,0 +1,21 @@
+/**
+* @author Richard Davey
+* @copyright 2014 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
+/**
+* \o/ ~ "Because I'm a Material girl"
+*
+* @class Phaser.Physics.Material
+* @classdesc Physics Material Constructor
+* @constructor
+*/
+Phaser.Physics.Material = function () {
+
+ p2.Material.call(this);
+
+}
+
+Phaser.Physics.Material.prototype = Object.create(p2.Material.prototype);
+Phaser.Physics.Material.prototype.constructor = Phaser.Physics.Material;