Index: trunk/src/UserInterface/BibleCombiViewController.m
===================================================================
--- trunk/src/UserInterface/BibleCombiViewController.m	(revision 326)
+++ trunk/src/UserInterface/BibleCombiViewController.m	(working copy)
@@ -603,12 +603,6 @@
     NSMutableArray *subViews = [NSMutableArray arrayWithArray:[parBibleSplitView subviews]];
     [subViews addObjectsFromArray:[parMiscSplitView subviews]];
     
-    // the current horizontal textcontainer inset
-    float inset = 0.0;
-    if([userDefaults objectForKey:DefaultsTextContainerHorizontalMargins]) {
-        inset = [[userDefaults objectForKey:DefaultsTextContainerHorizontalMargins] floatValue];    
-    }
-    
     NSEnumerator *iter = [subViews reverseObjectEnumerator];
     ScrollSynchronizableView *v = nil;
     while((v = [iter nextObject])) {
@@ -649,9 +643,29 @@
                      */
                     
                     NSRect destRect = [self rectForAttributeName:TEXT_VERSE_MARKER attributeValue:sourceMarker inTextView:v.textView];
+                
+                    NSString *logStr;
                     
                     if(destRect.origin.x != NSNotFound) {
+                        // the current horizontal textcontainer inset
+                        float inset = 0.0;
+                        if([userDefaults objectForKey:DefaultsTextContainerHorizontalMargins] && destRect.origin.y != 0) {
+                            inset = [[userDefaults objectForKey:DefaultsTextContainerHorizontalMargins] floatValue];    
+                        }
+                        
                         // set point
+                        logStr = [NSString stringWithFormat:@"[BibleViewController -syncronizedViewContentBoundsDidChange:] current X offset: %.0f",  destRect.origin.x];
+                        MBLOG(MBLOG_DEBUG, logStr);
+                        
+                        logStr = [NSString stringWithFormat:@"[BibleViewController -syncronizedViewContentBoundsDidChange:] current Y offset: %.0f",  destRect.origin.y];
+                        MBLOG(MBLOG_DEBUG, logStr);
+                                                
+                        logStr = [NSString stringWithFormat:@"[BibleViewController -syncronizedViewContentBoundsDidChange:] current inset: %.0f",  inset];
+                        MBLOG(MBLOG_DEBUG, logStr);
+
+                        logStr = [NSString stringWithFormat:@"[BibleViewController -syncronizedViewContentBoundsDidChange:] source marker: %@",  sourceMarker];
+                        MBLOG(MBLOG_DEBUG, logStr);
+                        
                         destPoint.x = destRect.origin.x;
                         destPoint.y = destRect.origin.y + inset;                                            
                     } else {
@@ -743,7 +757,7 @@
     // get the first found verseMarker attribute in the given text
     long len = [text length];
     for(int i = 0;i < len;i++) {
-        NSString * val = [text attribute:@"VerseMarkerAttributeName" atIndex:i effectiveRange:nil];
+        NSString * val = [text attribute:TEXT_VERSE_MARKER atIndex:i effectiveRange:nil];
         if(val != nil) {
             ret = val;
             break;
@@ -796,6 +810,7 @@
     NSRange lineRange = [self rangeFromViewableFirstLineInTextView:[syncView textView] lineRect:&lineRect];
     // try to get characters of textStorage
     NSAttributedString *attrString = [[[syncView textView] textStorage] attributedSubstringFromRange:NSMakeRange(lineRange.location, lineRange.length)];
+
     // now, that we have the first line, extract the verse Marker
     return [self verseMarkerInTextLine:attrString];    
 }
Index: trunk/src/UserInterface/BibleViewController.m
===================================================================
--- trunk/src/UserInterface/BibleViewController.m	(revision 326)
+++ trunk/src/UserInterface/BibleViewController.m	(working copy)
@@ -456,10 +456,20 @@
                 }
             }
             if(isShowVerseNumbersOnly) {
-                [aString appendFormat:@"<br /><b>%@ %i:</b><br />\n", bookName, chapter];
+                ///[aString appendFormat:@"<b>%@ %i:</b><br />\n", bookName, chapter];
             }
         }
-        [aString appendFormat:@"<b>;;;%@;;;</b>", verseMarkerInfo];    // verse marker
+        if (verse == 1 && isShowVerseNumbersOnly) {
+            if (chapter == 1) {
+                [aString appendFormat:@"<b>;;;%@|%i;;;:</b><br />\n<b>;;;%@;;;</b>", bookName, chapter, verseMarkerInfo];    // verse marker
+            }
+            else {
+                [aString appendFormat:@"<br /><b>;;;%@|%i;;;:</b><br />\n<b>;;;%@;;;</b>", bookName, chapter, verseMarkerInfo];    // verse marker
+            }
+        }
+        else {
+            [aString appendFormat:@"<b>;;;%@;;;</b>", verseMarkerInfo];    // verse marker
+        }
         [aString appendFormat:@"%@<br />\n", [anEntry text]];
     }
     
@@ -518,34 +528,56 @@
                 
                 // create marker
                 NSString *marker = [text substringWithRange:NSMakeRange(replaceRange.location + 3, replaceRange.length - 6)];
+
                 NSArray *comps = [marker componentsSeparatedByString:@"|"];
-                NSString *verseMarker = [NSString stringWithFormat:@"%@ %@:%@", [comps objectAtIndex:0], [comps objectAtIndex:1], [comps objectAtIndex:2]];
-                
-                NSString *visible = @"";
-                NSRange linkRange;
-                linkRange.length = 0;
-                linkRange.location = NSNotFound;
-                if(showBookNames) {
-                    if(isVersesOnOneLine && !isShowVerseNumbersOnly) {
-                        visible = [NSString stringWithFormat:@"%@ %@:%@: ", [comps objectAtIndex:0], [comps objectAtIndex:1], [comps objectAtIndex:2]];
-                        linkRange.location = replaceRange.location;
-                        linkRange.length = [visible length] - 2;                            
-                    } else {
-                        visible = [NSString stringWithFormat:@"%@ ", [comps objectAtIndex:2]];
-                        linkRange.location = replaceRange.location;
-                        linkRange.length = [visible length] - 1;
+                if ([comps count] == 2)
+                {         
+                    NSString *verseMarker = [NSString stringWithFormat:@"%@ %@", [comps objectAtIndex:0], [comps objectAtIndex:1]];
+
+                    NSRange linkRange;
+                    linkRange.length = 9;
+                    linkRange.location = replaceRange.location;
+                    
+                    NSMutableDictionary *markerOpts = [NSMutableDictionary dictionaryWithCapacity:3];
+                    [markerOpts setObject:verseMarker forKey:TEXT_VERSE_MARKER];
+                    
+                    [anAttrString replaceCharactersInRange:replaceRange withString: verseMarker];
+                    [anAttrString addAttributes:markerOpts range:linkRange];   
+                }
+                else
+                {
+                    NSString *verseMarker = [NSString stringWithFormat:@"%@ %@:%@", [comps objectAtIndex:0], [comps objectAtIndex:1], [comps objectAtIndex:2]];
+                    
+                    NSString *visible = @"";
+                    NSRange linkRange;
+                    linkRange.length = 0;
+                    linkRange.location = NSNotFound;
+                    if(showBookNames) {
+                        if(isVersesOnOneLine && !isShowVerseNumbersOnly) {
+                            visible = [NSString stringWithFormat:@"%@ %@:%@: ", [comps objectAtIndex:0], [comps objectAtIndex:1], [comps objectAtIndex:2]];
+                            linkRange.location = replaceRange.location;
+                            linkRange.length = [visible length] - 2;                            
+                        } else {
+                            visible = [NSString stringWithFormat:@"%@ ", [comps objectAtIndex:2]];
+                            linkRange.location = replaceRange.location;
+                            linkRange.length = [visible length] - 1;
+                        }
+                    } else if(showBookAbbr) {
+                        // TODO: show abbrevation
                     }
-                } else if(showBookAbbr) {
-                    // TODO: show abbrevation
+                    NSString *verseLink = [NSString stringWithFormat:@"sword://%@/%@", [module name], verseMarker];
+                    NSURL *verseURL = [NSURL URLWithString:[verseLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
+                    
+                    NSMutableDictionary *markerOpts = [NSMutableDictionary dictionaryWithCapacity:3];
+                    [markerOpts setObject:verseMarker forKey:TEXT_VERSE_MARKER];
+                    [markerOpts setObject:[NSCursor pointingHandCursor] forKey:NSCursorAttributeName];
+                    [markerOpts setObject:verseURL forKey:NSLinkAttributeName];
+                    
+                    [anAttrString replaceCharactersInRange:replaceRange withString:visible];
+                    [anAttrString addAttributes:markerOpts range:linkRange];
+                    
+                    replaceRange.location += [visible length];   
                 }
-                
-                NSMutableDictionary *markerOpts = [NSMutableDictionary dictionaryWithCapacity:1];
-                [markerOpts setObject:verseMarker forKey:TEXT_VERSE_MARKER];
-                
-                [anAttrString replaceCharactersInRange:replaceRange withString:visible];
-                [anAttrString addAttributes:markerOpts range:linkRange];
-                
-                replaceRange.location += [visible length];
             }
         } else {
             found = NO;
Index: trunk/src/UserInterface/ModuleViewController.h
===================================================================
--- trunk/src/UserInterface/ModuleViewController.h	(revision 326)
+++ trunk/src/UserInterface/ModuleViewController.h	(working copy)
@@ -13,6 +13,7 @@
 #import <Indexer.h>
 
 #define TEXT_VERSE_MARKER   @"VerseMarkerAttributeName"
+#define CHAPTER_BEGINNING_MARKER @"ChapterBeginningMarker"
 
 @class SwordModule;
 @class ExtTextViewController;
