diff --git a/stack.sh b/stack.sh
index 17972c9..18d1695 100755
--- a/stack.sh
+++ b/stack.sh
@@ -184,6 +184,8 @@
 SWIFT_KEYSTONE_DIR=$DEST/swift-keystone2
 QUANTUM_DIR=$DEST/quantum
 QUANTUM_CLIENT_DIR=$DEST/python-quantumclient
+MELANGE_DIR=$DEST/melange
+MELANGECLIENT_DIR=$DEST/python-melangeclient
 
 # Default Quantum Plugin
 Q_PLUGIN=${Q_PLUGIN:-openvswitch}
@@ -192,6 +194,13 @@
 # Default Quantum Host
 Q_HOST=${Q_HOST:-localhost}
 
+# Default Melange Port
+M_PORT=${M_PORT:-9898}
+# Default Melange Host
+M_HOST=${M_HOST:-localhost}
+# Melange MAC Address Range
+M_MAC_RANGE=${M_MAC_RANGE:-404040/24}
+
 # Specify which services to launch.  These generally correspond to screen tabs
 ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit}
 
@@ -330,6 +339,13 @@
 #
 # With Quantum networking the NET_MAN variable is ignored.
 
+# Using Melange IPAM:
+#
+# Make sure that quantum and melange are enabled in ENABLED_SERVICES.
+# If they are then the melange IPAM lib will be set in the QuantumManager.
+# Adding m-svc to ENABLED_SERVICES will start the melange service on this
+# host.
+
 
 # MySQL & RabbitMQ
 # ----------------
@@ -622,6 +638,15 @@
     git_clone $QUANTUM_CLIENT_REPO $QUANTUM_CLIENT_DIR $QUANTUM_CLIENT_BRANCH
 fi
 
+if [[ "$ENABLED_SERVICES" =~ "m-svc" ]]; then
+    # melange
+    git_clone $MELANGE_REPO $MELANGE_DIR $MELANGE_BRANCH
+fi
+
+if [[ "$ENABLED_SERVICES" =~ "melange" ]]; then
+    git_clone $MELANGECLIENT_REPO $MELANGECLIENT_DIR $MELANGECLIENT_BRANCH
+fi
+
 # Initialization
 # ==============
 
@@ -652,6 +677,12 @@
 if [[ "$ENABLED_SERVICES" =~ "q-svc" ]]; then
     cd $QUANTUM_DIR; sudo python setup.py develop
 fi
+if [[ "$ENABLED_SERVICES" =~ "m-svc" ]]; then
+    cd $MELANGE_DIR; sudo python setup.py develop
+fi
+if [[ "$ENABLED_SERVICES" =~ "melange" ]]; then
+    cd $MELANGECLIENT_DIR; sudo python setup.py develop
+fi
 
 # Syslog
 # ---------
@@ -1153,6 +1184,13 @@
     add_nova_flag "--network_manager=nova.network.quantum.manager.QuantumManager"
     add_nova_flag "--quantum_connection_host=$Q_HOST"
     add_nova_flag "--quantum_connection_port=$Q_PORT"
+
+    if [[ "$ENABLED_SERVICES" =~ "melange" ]]; then
+        add_nova_flag "--quantum_ipam_lib=nova.network.quantum.melange_ipam_lib"
+        add_nova_flag "--use_melange_mac_generation"
+        add_nova_flag "--melange_host=$M_HOST"
+        add_nova_flag "--melange_port=$M_PORT"
+    fi
     if [[ "$ENABLED_SERVICES" =~ "q-svc" && "$Q_PLUGIN" = "openvswitch" ]]; then
         add_nova_flag "--libvirt_vif_type=ethernet"
         add_nova_flag "--libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
@@ -1408,6 +1446,28 @@
 
 fi
 
+# Melange service
+if [[ "$ENABLED_SERVICES" =~ "m-svc" ]]; then
+    if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then
+        mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS melange;'
+        mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE melange;'
+    else
+        echo "mysql must be enabled in order to use the $Q_PLUGIN Quantum plugin."
+        exit 1
+    fi
+    MELANGE_CONFIG_FILE=$MELANGE_DIR/etc/melange/melange.conf
+    cp $MELANGE_CONFIG_FILE.sample $MELANGE_CONFIG_FILE
+    sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/melange/g" $MELANGE_CONFIG_FILE
+    cd $MELANGE_DIR && PYTHONPATH=.:$PYTHONPATH python $MELANGE_DIR/bin/melange-manage --config-file=$MELANGE_CONFIG_FILE db_sync
+    screen_it m-svc "cd $MELANGE_DIR && PYTHONPATH=.:$PYTHONPATH python $MELANGE_DIR/bin/melange-server --config-file=$MELANGE_CONFIG_FILE"
+    echo "Waiting for melange to start..."
+    if ! timeout $SERVICE_TIMEOUT sh -c "while ! http_proxy= wget -q -O- http://127.0.0.1:9898; do sleep 1; done"; then
+      echo "melange-server did not start"
+      exit 1
+    fi
+    melange mac_address_range create cidr=$M_MAC_RANGE
+fi
+
 # If we're using Quantum (i.e. q-svc is enabled), network creation has to
 # happen after we've started the Quantum service.
 if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then
@@ -1425,6 +1485,7 @@
     fi
 fi
 
+
 # Launching nova-compute should be as simple as running ``nova-compute`` but
 # have to do a little more than that in our script.  Since we add the group
 # ``libvirtd`` to our user in this script, when nova-compute is run it is
