diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 8eab9b1..65c3fea 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -204,6 +204,7 @@
 	MagickCore/opencl-private.h \
 	MagickCore/option.c \
 	MagickCore/option.h \
+	MagickCore/option-private.h \
 	MagickCore/paint.c \
 	MagickCore/paint.h \
 	MagickCore/pixel.c \
@@ -450,6 +451,7 @@
 	MagickCore/nt-base.h \
 	MagickCore/nt-feature.h \
 	MagickCore/opencl-private.h \
+	MagickCore/option-private.h \
  	MagickCore/pixel-private.h \
  	MagickCore/policy-private.h \
  	MagickCore/profile-private.h \
diff --git a/MagickCore/option-private.h b/MagickCore/option-private.h
new file mode 100644
index 0000000..421b17c
--- /dev/null
+++ b/MagickCore/option-private.h
@@ -0,0 +1,32 @@
+/*
+  Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.
+  obtain a copy of the License at
+  
+    http://www.imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore option private methods.
+*/
+#ifndef _MAGICKCORE_OPTION_PRIVATE_H
+#define _MAGICKCORE_OPTION_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickPrivate MagickBooleanType
+  IsOptionMember(const char *,const char *);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/option.c b/MagickCore/option.c
index f517add..0bbf724 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -64,6 +64,7 @@
 #include "MagickCore/montage.h"
 #include "MagickCore/morphology.h"
 #include "MagickCore/option.h"
+#include "MagickCore/option-private.h"
 #include "MagickCore/pixel.h"
 #include "MagickCore/policy.h"
 #include "MagickCore/property.h"
@@ -2369,6 +2370,66 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   I s O p t i o n M e m b e r                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  IsOptionMember() returns MagickTrue if the option is a member of the options
+%  list (e.g. ICC is a member of xmp,icc,iptc).
+%
+%  The format of the IsOptionMember function is:
+%
+%      MagickBooleanType IsOptionMember(const char *option,
+%        const char *options)
+%
+%  A description of each parameter follows:
+%
+%    o option: an option or option expression (e.g. ICC or *).
+%
+%    o options: one or more options separated by commas.
+%
+%
+*/
+MagickPrivate MagickBooleanType IsOptionMember(const char *option,
+  const char *options)
+{
+  char
+    **option_list,
+    *string;
+
+  int
+    number_options;
+
+  register ssize_t
+    i;
+
+  /*
+    Is option a member of the options list?
+  */
+  string=ConstantString(options);
+  (void) SubstituteString(&string,","," ");
+  option_list=StringToArgv(string,&number_options);
+  string=DestroyString(string);
+  if (option_list == (char **) NULL)
+    return(MagickFalse);
+  for (i=1; i < (ssize_t) number_options; i++)
+  {
+    if ((*option_list[i] == '!') &&
+        (LocaleCompare(option,option_list[i]+1) == 0))
+      return(MagickFalse);
+    if (GlobExpression(option,option_list[i],MagickTrue) != MagickFalse)
+      return(MagickTrue);
+  }
+  return(MagickFalse);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   L i s t C o m m a n d O p t i o n s                                       %
 %                                                                             %
 %                                                                             %
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 774fb9e..703e132 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2014 ImageMagick Studio LLC"
-#define MagickSVNRevision  "16049:16055M"
+#define MagickSVNRevision  "16049:16068M"
 #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-06-23"
+#define MagickReleaseDate  "2014-06-25"
 #define MagickChangeDate   "20120427"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #define MagickFeatures "DPC HDRI OpenMP"
diff --git a/Makefile.in b/Makefile.in
index 12011f2..689acb6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -494,7 +494,8 @@
 	MagickCore/nt-base.h MagickCore/nt-base-private.h \
 	MagickCore/nt-feature.h MagickCore/opencl.c \
 	MagickCore/opencl.h MagickCore/opencl-private.h \
-	MagickCore/option.c MagickCore/option.h MagickCore/paint.c \
+	MagickCore/option.c MagickCore/option.h \
+	MagickCore/option-private.h MagickCore/paint.c \
 	MagickCore/paint.h MagickCore/pixel.c MagickCore/pixel.h \
 	MagickCore/pixel-accessor.h MagickCore/pixel-private.h \
 	MagickCore/policy.c MagickCore/policy.h \
@@ -4283,6 +4284,7 @@
 	MagickCore/opencl-private.h \
 	MagickCore/option.c \
 	MagickCore/option.h \
+	MagickCore/option-private.h \
 	MagickCore/paint.c \
 	MagickCore/paint.h \
 	MagickCore/pixel.c \
@@ -4524,6 +4526,7 @@
 	MagickCore/nt-base.h \
 	MagickCore/nt-feature.h \
 	MagickCore/opencl-private.h \
+	MagickCore/option-private.h \
  	MagickCore/pixel-private.h \
  	MagickCore/policy-private.h \
  	MagickCore/profile-private.h \
diff --git a/configure b/configure
index a3a2025..a53c58a 100755
--- a/configure
+++ b/configure
@@ -3698,7 +3698,7 @@
 
 MAGICK_VERSION=7.0.0-0
 
-MAGICK_SVN_REVISION=16049:16055M
+MAGICK_SVN_REVISION=16049:16068M
 
 
 # Substitute library versioning
