diff --git a/parser.go b/parser.go
index a417ba9..f95a92d 100644
--- a/parser.go
+++ b/parser.go
@@ -29,7 +29,7 @@
 	// name and the remaining command line arguments.
 	// It should return a new list of remaining arguments to continue parsing,
 	// or an error to indicate a parse failure.
-	UnknownOptionHandler func(option string, args []string) ([]string, error)
+	UnknownOptionHandler func(option string, val *string, args []string) ([]string, error)
 
 	internalError error
 }
@@ -219,7 +219,7 @@
 			if ignoreUnknown {
 				s.addArgs(arg)
 			} else if p.UnknownOptionHandler != nil {
-				modifiedArgs, err := p.UnknownOptionHandler(optname, s.args)
+				modifiedArgs, err := p.UnknownOptionHandler(optname, argument, s.args)
 
 				if err != nil {
 					s.err = err
diff --git a/parser_test.go b/parser_test.go
index bba7576..325bc35 100644
--- a/parser_test.go
+++ b/parser_test.go
@@ -369,10 +369,15 @@
 
 	var unknownFlag1 string
 	var unknownFlag2 bool
+	var unknownFlag3 string
 
 	// Set up a callback to intercept unknown options during parsing
-	p.UnknownOptionHandler = func(option string, args []string) ([]string, error) {
+	p.UnknownOptionHandler = func(option string, argument *string, args []string) ([]string, error) {
 		if option == "unknownFlag1" {
+			if argument != nil {
+				unknownFlag1 = *argument
+				return args, nil
+			}
 			// consume a value from remaining args list
 			unknownFlag1 = args[0]
 			return args[1:], nil
@@ -380,6 +385,14 @@
 			// treat this one as a bool switch, don't consume any args
 			unknownFlag2 = true
 			return args, nil
+		} else if option == "unknownFlag3" {
+			if argument != nil {
+				unknownFlag3 = *argument
+				return args, nil
+			}
+			// consume a value from remaining args list
+			unknownFlag3 = args[0]
+			return args[1:], nil
 		}
 
 		return args, fmt.Errorf("Unknown flag: %v", option)
@@ -387,7 +400,7 @@
 
 	// Parse args containing some unknown flags, verify that
 	// our callback can handle all of them
-	_, err := p.ParseArgs([]string{"--flag1=stuff", "--unknownFlag1", "blah", "--unknownFlag2", "--flag2=foo"})
+	_, err := p.ParseArgs([]string{"--flag1=stuff", "--unknownFlag1", "blah", "--unknownFlag2", "--unknownFlag3=baz", "--flag2=foo"})
 
 	if err != nil {
 		assertErrorf(t, "Parser returned unexpected error %v", err)
@@ -396,6 +409,7 @@
 	assertString(t, opts.Flag1, "stuff")
 	assertString(t, opts.Flag2, "foo")
 	assertString(t, unknownFlag1, "blah")
+	assertString(t, unknownFlag3, "baz")
 
 	if !unknownFlag2 {
 		assertErrorf(t, "Flag should have been set by unknown handler, but had value: %v", unknownFlag2)
