diff --git a/rgmanager/src/resources/named.metadata b/rgmanager/src/resources/named.metadata
index 64442b159..548d03b02 100644
--- a/rgmanager/src/resources/named.metadata
+++ b/rgmanager/src/resources/named.metadata
@@ -1,104 +1,116 @@
 <?xml version="1.0"?>
 <resource-agent version="rgmanager 2.0" name="named">
     <version>1.0</version>
 
     <longdesc lang="en">
         This defines an instance of DNS named server
     </longdesc>
     <shortdesc lang="en">
         Defines an instance of named server
     </shortdesc>
 
     <parameters>
         <parameter name="name" primary="1">
 	    <longdesc lang="en">
 	        Specifies a service name for logging and other purposes
 	    </longdesc>
             <shortdesc lang="en">
                 Name
             </shortdesc>
 	    <content type="string"/>
         </parameter>
 
         <parameter name="config_file">
             <longdesc lang="en">
                 Define absolute path to configuration file
             </longdesc>
             <shortdesc lang="en">
                 Config File
             </shortdesc>
 	    <content type="string" default="/etc/named.conf"/>
         </parameter>
 
         <parameter name="named_sdb">
             <longdesc lang="en">
 		Simplified Database Backend
             </longdesc>
             <shortdesc lang="en">
 		Simplified Database Backend
             </shortdesc>
 	    <content type="boolean" default="0"/>
         </parameter>
 
 	<parameter name="named_working_dir">
 		<longdesc lang="en">
 			Other command-line options for named
 		</longdesc>
 		<shortdesc lang="en">
 			Other command-line options for named
 		</shortdesc>
 		<content type="string" default="/var/named" />
 	</parameter>
 
 	<parameter name="named_options">
 		<longdesc lang="en">
 			Other command-line options for named
 		</longdesc>
 		<shortdesc lang="en">
 			Other command-line options for named
 		</shortdesc>
 		<content type="string" />
 	</parameter>
 
+
+	<parameter name="update_source">
+		<longdesc lang="en">
+			Update 'notify-source', 'transfer-source', and 'query-source' to match
+			the cluster ip associated with this service.
+		</longdesc>
+		<shortdesc lang="en">
+			Use cluster ip as source.
+		</shortdesc>
+		<content type="string" />
+	</parameter>
+
 	<parameter name="shutdown_wait">
 		<longdesc lang="en">
 			Wait X seconds for correct end of service shutdown
 		</longdesc>
 		<shortdesc lang="en">
 			Wait X seconds for correct end of service shutdown
 		</shortdesc>
 		<content type="integer" default="5" />
 	</parameter>
 
         <parameter name="service_name" inherit="service%name">
             <longdesc lang="en">
 	    	Inherit the service name.  We need to know
 		the service name in order to determine file
 		systems and IPs for this service.
             </longdesc>
             <shortdesc lang="en">
 	    	Inherit the service name.
             </shortdesc>
 	    <content type="string"/>
         </parameter>
     </parameters>
 
     <actions>
         <action name="start" timeout="0"/>
 	<action name="stop" timeout="0"/>
 
 	<!-- Checks to see if it''s mounted in the right place -->
 	<action name="status" interval="1m" timeout="10"/>
 	<action name="monitor" interval="1m" timeout="10"/>
 
 	<!-- Checks to see if we can read from the mountpoint -->
 	<action name="status" depth="10" timeout="30" interval="5m"/>
 	<action name="monitor" depth="10" timeout="30" interval="5m"/>
 
 	<action name="meta-data" timeout="0"/>
 	<action name="validate-all" timeout="0"/>
     </actions>
 
     <special tag="rgmanager">
     </special>
 </resource-agent>
diff --git a/rgmanager/src/resources/named.sh b/rgmanager/src/resources/named.sh
index 89e7b3575..f73bf8942 100755
--- a/rgmanager/src/resources/named.sh
+++ b/rgmanager/src/resources/named.sh
@@ -1,211 +1,215 @@
 #!/bin/bash
 #
 # Copyright (C) 1997-2003 Sistina Software, Inc.  All rights reserved.
 # Copyright (C) 2004-2011 Red Hat, Inc.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 
 export LC_ALL=C
 export LANG=C
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 
 . $(dirname $0)/ocf-shellfuncs
 . $(dirname $0)/utils/config-utils.sh
 . $(dirname $0)/utils/messages.sh
 . $(dirname $0)/utils/ra-skelet.sh
 
 declare NAMED_NAMED=/usr/sbin/named
 declare NAMED_pid_file="`generate_name_for_pid_file`"
 declare NAMED_conf_dir="`generate_name_for_conf_dir`"
 declare NAMED_gen_config_file="$NAMED_conf_dir/named.conf"
 declare NAMED_url_list
 declare NAMED_parse_config=$(dirname $0)/utils/named-parse-config.pl
+declare NAMED_update_src="false"
 
 verify_all()
 {
 	clog_service_verify $CLOG_INIT
 
 	if [ -z "$OCF_RESKEY_name" ]; then
 		clog_service_verify $CLOG_FAILED "Invalid Name Of Service"
 		return $OCF_ERR_ARGS
 	fi
 
 	if [ -z "$OCF_RESKEY_service_name" ]; then
 		clog_service_verify $CLOG_FAILED_NOT_CHILD
 		return $OCF_ERR_ARGS
 	fi
 
 	if [ -z "$OCF_RESKEY_config_file" ]; then
 		clog_check_file_exist $CLOG_FAILED_INVALID "$OCF_RESKEY_config_file"
 		clog_service_verify $CLOG_FAILED
 		return $OCF_ERR_ARGS
 	fi
 
 	if [ ! -r "$OCF_RESKEY_config_file" ]; then
 		clog_check_file_exist $CLOG_FAILED_NOT_READABLE $OCF_RESKEY_config_file
 		clog_service_verify $CLOG_FAILED
 		return $OCF_ERR_ARGS
 	fi
 
+	if [ -n "$OCF_RESKEY_update_source" ]; then
+		NAMED_update_src=$OCF_RESKEY_update_source
+	fi
 	clog_service_verify $CLOG_SUCCEED
 		
 	return 0
 }
 
 generate_config_file()
 {
 	declare original_file="$1"
 	declare generated_file="$2"
 	declare ip_address="$3"
 
 	if [ -f "$generated_file" ]; then
 		sha1_verify "$generated_file"
 		if [ $? -ne 0 ]; then
 			clog_check_sha1 $CLOG_FAILED
 			return 0
 		fi
 	fi	
 
 	clog_generate_config $CLOG_INIT "$original_file" "$generated_file"
 
 	generate_configTemplate "$generated_file" "$1"
 	cat "$original_file" | grep -v "^[[:space:]]*listen-on" | \
 		grep -v "^[[:space:]]*pid-file" | \
 		grep -v "^[[:space:]]*directory" >> "$generated_file"
 
 	declare tmp_file=`mktemp -t cluster.XXXXXXXXXX`
 	mv "$generated_file" "$tmp_file"
 
-	"$NAMED_parse_config" "$OCF_RESKEY_named_working_dir" "$NAMED_pid_file" "$ip_address" \
+	"$NAMED_parse_config" "$OCF_RESKEY_named_working_dir" "$NAMED_pid_file" "$ip_address" "$NAMED_update_src"\
 		 < "$tmp_file" > "$generated_file"
 
 	rm "$tmp_file"	
         sha1_addToFile "$generated_file"
 	clog_generate_config $CLOG_SUCCEED "$original_file" "$generated_file"
 
 	return 0;
 }
 
 start()
 {
 	declare ip_list;
 	
 	clog_service_start $CLOG_INIT
 
 	create_pid_directory
 	create_conf_directory "$NAMED_conf_dir"
 	check_pid_file "$NAMED_pid_file"
 
 	if [ $? -ne 0 ]; then
 		clog_check_pid $CLOG_FAILED "$NAMED_pid_file"
 		clog_service_start $CLOG_FAILED
 		return $OCF_ERR_GENERIC
 	fi
 	clog_looking_for $CLOG_INIT "IP Addresses"
 
         get_service_ip_keys "$OCF_RESKEY_service_name"
         ip_addresses=`build_ip_list`
 
 	if [ -z "$ip_addresses" ]; then
 		clog_looking_for $CLOG_FAILED_NOT_FOUND "IP Addresses"
 		return $OCF_ERR_GENERIC
 	fi
 	
 	clog_looking_for $CLOG_SUCCEED "IP Addresses"
 
 	ip_list=`echo $ip_addresses | sed 's/ /;/;s/\([[:digit:]]\)$/\1;/' `
 
 	if [ -z "$ip_list" ]; then
 		clog_looking_for $CLOG_FAILED_NOT_FOUND "IP Addresses"
 		return $OCF_ERR_GENERIC
 	fi
 
 	generate_config_file "$OCF_RESKEY_config_file" "$NAMED_gen_config_file" "$ip_list"
 
 	$NAMED_NAMED -c "$NAMED_gen_config_file" $OCF_RESKEY_named_options
 
 	if [ $? -ne 0 ]; then
 		clog_service_start $CLOG_FAILED
 		return $OCF_ERR_GENERIC
 	fi
 
 	clog_service_start $CLOG_SUCCEED
 
 	return 0;
 }
 
 stop()
 {
 	clog_service_stop $CLOG_INIT
 
 	stop_generic "$NAMED_pid_file" "$OCF_RESKEY_shutdown_wait"
 	
 	if [ $? -ne 0 ]; then
 		clog_service_stop $CLOG_FAILED
 		return $OCF_ERR_GENERIC
 	fi
 	
 	clog_service_stop $CLOG_SUCCEED
 	return 0;
 }
 
 status()
 {
 	clog_service_status $CLOG_INIT
 
 	status_check_pid "$NAMED_pid_file"
 	if [ $? -ne 0 ]; then
 		clog_service_status $CLOG_FAILED "$NAMED_pid_file"
 		return $OCF_ERR_GENERIC
 	fi
 
 	clog_service_status $CLOG_SUCCEED
 	return 0
 }
 
 case $1 in
 	meta-data)
 		cat `echo $0 | sed 's/^\(.*\)\.sh$/\1.metadata/'`
 		exit 0
 		;;
 	validate-all)
 		verify_all
 		exit $?
 		;;
 	start)
 		verify_all && start
 		exit $?
 		;;
 	stop)
 		verify_all && stop
 		exit $?
 		;;
 	status|monitor)
 		verify_all
 		status
 		exit $?
 		;;
 	restart)
 		verify_all
 		stop
 		start
 		exit $?
 		;;
 	*)
 		echo "Usage: $0 {start|stop|status|monitor|restart|meta-data|validate-all}"
 		exit $OCF_ERR_UNIMPLEMENTED
 		;;
 esac
diff --git a/rgmanager/src/resources/utils/named-parse-config.pl b/rgmanager/src/resources/utils/named-parse-config.pl
index cbcaf0389..a941a60c7 100644
--- a/rgmanager/src/resources/utils/named-parse-config.pl
+++ b/rgmanager/src/resources/utils/named-parse-config.pl
@@ -1,44 +1,49 @@
 #!/usr/bin/perl -w
 #
 # Copyright (C) 1997-2003 Sistina Software, Inc.  All rights reserved.
 # Copyright (C) 2004-2011 Red Hat, Inc.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 
 ##
 ##  Parse named.conf (from STDIN) and add options from cluster.conf
 ##  
-##  ./named-parse-config.pl "directory" "pid-file" "listen-on"
+##  ./named-parse-config.pl "directory" "pid-file" "listen-on" "set source <true | false>"
 ##
 use strict;
 
-if ($#ARGV < 2) {
+if ($#ARGV < 3) {
 	die ("Not enough arguments");
 }
 
 while (my $line = <STDIN>) {
 	chomp($line);
 	$line =~ s/(.*?)\s*$/$1/;
 	if ($line =~ /^\s*options\s+\{/) {
 		print $line, "\n";
 		print "\tdirectory \"$ARGV[0]\";\n";
 		print "\tpid-file \"$ARGV[1]\";\n";
 		print "\tlisten-on { $ARGV[2] };\n";
+		if ($ARGV[3] =~ "1|true|TRUE|yes|YES|on|ON") {
+			print "\tnotify-source $ARGV[2];\n";
+			print "\ttransfer-source $ARGV[2];\n";
+			print "\tquery-source $ARGV[2];\n";
+		}
 	} else {
 		print $line, "\n";
 	}
 }