--- contextual.module
+++ contextual.module
@@ -126,19 +126,22 @@
 function views_admin_link($type, $object) {
   $links = array();
   $view_name = '';
+  $display_id = '';
   if (user_access('administer views')) {
     switch ($type) {
       case 'block':
         // If this is a Views block and not a special (exposed filter, etc.) block...
         if ($object->module == 'views' && strpos($object->delta, '-') !== 0) {
-          $split = explode('-', $object->delta);
+          $split = explode('-', $object->delta, 2);
           $view_name = array_shift($split);
+          $display_id = array_shift($split);
         }
         break;
       case 'views':
         // Bail on block/attachment views or views using the node row plugin to prevent collisions.
         if ($object->display_handler->get_option('row_plugin') != 'node' && !in_array(get_class($object->display_handler), array('views_plugin_display_attachment', 'views_plugin_display_block'))) {
           $view_name = $object->name;
+          $display_id = $object->display_handler->display->id;
         }
         break;
     }
@@ -149,7 +152,7 @@
         'attributes' => array('class' => 'icon-edit'),
         'query' => array('destination' => $_GET['q']),
       );
-      if ($display_id = $object->display_handler->display->id) {
+      if ($display_id) {
         $links['views-edit']['fragment'] = 'views-tab-'. $display_id;
       }
     }


