Do not clear func options
diff --git a/option_private.go b/option_private.go
index 6801885..c6b7c0d 100644
--- a/option_private.go
+++ b/option_private.go
@@ -42,7 +42,9 @@
 }
 
 func (option *Option) empty() {
-	option.value.Set(option.emptyValue())
+	if !option.isFunc() {
+		option.value.Set(option.emptyValue())
+	}
 }
 
 func (option *Option) clearDefault() {