diff --git a/MagickCore/version.h b/MagickCore/version.h
index 0e85e80..f892e66 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2015 ImageMagick Studio LLC"
-#define MagickSVNRevision  "17128:17158M"
+#define MagickSVNRevision  "17236:17250"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  1,0,0
@@ -48,7 +48,7 @@
 #define MagickppLibAddendum  "-0"
 #define MagickppLibInterface  1
 #define MagickppLibMinInterface  1
-#define MagickReleaseDate  "2014-12-05"
+#define MagickReleaseDate  "2014-12-15"
 #define MagickChangeDate   "20120427"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #define MagickFeatures "DPC HDRI OpenMP"
diff --git a/Makefile.in b/Makefile.in
index 59f24a6..c57af3f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2547,6 +2547,8 @@
 AUTOTRACE_LIBS = @AUTOTRACE_LIBS@
 AWK = @AWK@
 AutotraceDecodeDelegate = @AutotraceDecodeDelegate@
+BGPDecodeDelegate = @BGPDecodeDelegate@
+BGPEncodeDelegate = @BGPEncodeDelegate@
 BIN_DIR = @BIN_DIR@
 BZIPDelegate = @BZIPDelegate@
 BZLIB_LIBS = @BZLIB_LIBS@
diff --git a/configure b/configure
index 3ab368d..db10ba9 100755
--- a/configure
+++ b/configure
@@ -734,6 +734,8 @@
 BrowseDelegate
 BZIPDelegate
 BlenderDecodeDelegate
+BGPEncodeDelegate
+BGPDecodeDelegate
 AutotraceDecodeDelegate
 SHAREARCH_PATH
 SHAREARCH_RELATIVE_PATH
@@ -3707,7 +3709,7 @@
 
 MAGICK_VERSION=7.0.0-0
 
-MAGICK_SVN_REVISION=17128:17158M
+MAGICK_SVN_REVISION=17236:17250
 
 
 # Substitute library versioning
@@ -32868,6 +32870,8 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
 AutotraceDecodeDelegateDefault='autotrace'
+BPGDecodeDelegateDefault='bpgdec'
+BPGEncodeDelegateDefault='bpgenc'
 BlenderDecodeDelegateDefault='blender'
 BZIPDelegateDefault='bzip2'
 BrowseDelegateDefault='xdg-open'
@@ -32962,6 +32966,88 @@
 fi
 
 
+# Extract the first word of ""$BGPDecodeDelegateDefault"", so it can be a program name with args.
+set dummy "$BGPDecodeDelegateDefault"; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BGPDecodeDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $BGPDecodeDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_BGPDecodeDelegate="$BGPDecodeDelegate" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_BGPDecodeDelegate="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_BGPDecodeDelegate" && ac_cv_path_BGPDecodeDelegate=""$BGPDecodeDelegateDefault""
+  ;;
+esac
+fi
+BGPDecodeDelegate=$ac_cv_path_BGPDecodeDelegate
+if test -n "$BGPDecodeDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BGPDecodeDelegate" >&5
+$as_echo "$BGPDecodeDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of ""$BGPEncodeDelegateDefault"", so it can be a program name with args.
+set dummy "$BGPEncodeDelegateDefault"; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BGPEncodeDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $BGPEncodeDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_BGPEncodeDelegate="$BGPEncodeDelegate" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_BGPEncodeDelegate="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_BGPEncodeDelegate" && ac_cv_path_BGPEncodeDelegate=""$BGPEncodeDelegateDefault""
+  ;;
+esac
+fi
+BGPEncodeDelegate=$ac_cv_path_BGPEncodeDelegate
+if test -n "$BGPEncodeDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BGPEncodeDelegate" >&5
+$as_echo "$BGPEncodeDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of ""$BlenderDecodeDelegateDefault"", so it can be a program name with args.
 set dummy "$BlenderDecodeDelegateDefault"; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -35062,6 +35148,8 @@
 if test "$with_frozenpaths" != 'yes'; then
   # Re-set delegate definitions to default (no paths)
   AutotraceDecodeDelegate="$AutotraceDecodeDelegateDefault"
+  BGPDecodeDelegate="$BGPDecodeDelegateDefault"
+  BGPEncodeDelegate="$BGPEncodeDelegateDefault"
   BlenderDecodeDelegate="$BlenderDecodeDelegateDefault"
   BZIPDelegate="$BZIPDelegateDefault"
   BrowseDelegate="$BrowseDelegateDefault"
@@ -35152,6 +35240,8 @@
 
 
 
+
+
 #
 # RPM support.
 #
