diff --git a/src/option.c b/src/option.c
index af206a0..480ba80 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1851,13 +1851,35 @@ ZenityParsingOptions *
 zenity_option_parse (gint argc, gchar **argv) 
 {
   GError *error = NULL;
-
+  int shift_left = 0;
+  int i;
+  
   zenity_option_init ();
 
   ctx = zenity_create_context ();
   
   g_option_context_parse (ctx, &argc, &argv, &error);
 
+  /* Hack fix to Bug: https://bugzilla.gnome.org/show_bug.cgi?id=612586
+   * The proper fix is to be done in GOption.
+   */ 
+  for(i = 0; i < argc; i++)
+  {
+    if(shift_left != 0)
+    {
+      argv[i - shift_left] = argv[i];
+    }
+	if(!strcmp(argv[i], "--"))
+	{
+		shift_left++;
+	}
+  }
+  while(shift_left > 0)
+  {
+    argv[i - shift_left] = 0;
+    shift_left--;
+  }
+
   /* Some option pointer a shared among more than one group and don't
      have their post condition tested. This test is done here. */
   
