The Crashers for Copies (or Even Cash!) Thread

Because I want to ensure that Scrivener is as stable as possible for everyone, I am introducing an offer whereby the first person to provide me with a set of steps to reproduce a particular crash can win either a free copy, a refund or - for some particular crashes - a prize. Please read on…

NOTE: Please don’t post in this thread unless you have read all of this post and all of the rules it contains. Off-topic posts or posts that do not follow the rules laid out will be deleted from this thread. Thanks!

Why I’m doing this
My aim is to make Scrivener rock-solid. The new automatic crash reporter I introduced in Scrivener 2.0 plays a big part in this, as it allows me to gather crash reports easily. Crash reports, however, only tell part of the story. Sometimes I can fix a crash purely by looking at a crash report, but this is the exception rather than the rule. More often, crash reports give me a general idea of where and what the bug is, and then I have to set about trying to find a way to reproduce the crash - that is, to get Scrivener to crash on my machine so that I can see it for myself - before I can fix it. Some crashes, especially memory-related ones, can be very difficult to track down and reproduce even with dozens of crash reports and instructions from users, because sometimes the cause of the crash may occur long before the crash itself. Thus, it may appear that a crash was caused by clicking on a button, but the next time you click that button, it works fine - because in fact the crash was caused by something else, perhaps a menu that was opened an hour or two ago, and Scrivener only panics when another action causes it to refer back to that menu internally.

About this offer
Because we’re a small company and don’t have teams of people who can spend time repeating different combinations of actions over and over again in the hope of stumbling on a particular crash, and because our beta-testers are working writers who can’t do this either, I’d like to ask the community for help in tracking down some of the crashes that are eluding me. To this end, if you are the first person to provide me with a full set of instructions that allow me to reproduce any particular crash consistently, I will give you either a full refund if you are already an owner of Scrivener, or a free licence if not. For some crashes that I’m desperate to find, I may offer a cash reward, instead - please see “Current Special Prizes” at the bottom of this thread for details on these.

(Please note that the full refund offer is only available to customers who have purchased from us directly - we are unable to offer refunds on purchases from the App Store or elsewhere. You can still get a copy for someone else, though, or a copy of Scapple. Also note that we may not always be able to offer the free copy as an App Store promo code.)

You must follow and adhere to all the rules below to be eligible for a refund or prize, though - and remember, this only applies to crashes, and only the first person to help me reproduce a particular crash will get the reward. (I’m not sure how long I’ll run this offer, either, as this is a bit of a trial.)

Thanks for your help!

THE RULES

  1. This offer is open to the Mac version of Scrivener only. (We’ll be giving free copies to the most helpful Windows beta-testers further down the line, don’t worry.)

  2. This offer is only applicable to crashers - that is, reports for bugs that don’t result in Scrivener crashing do not qualify. (Hangs may be considered though.)

  3. To qualify, the report must be posted as a reply to this thread.

  4. Be sure to place at the very top of your thread a a few words describing which crash you are reporting on - if it’s one for the special prizes, use the name of the crash as I’ve used to describe it in this post - so that other users can easily check to see if their crash has already been reported.

  5. You must provide a numbered list of steps that, when followed, will cause the crash every time. You must have tried the same steps at least five times, and each time Scrivener should have crashed. If it does not crash consistently, please let us know about it, but please don’t post it in the “Crashers for Copies” thread until you can get it to happen every time. If I follow the steps on the type of machine specified and Scrivener doesn’t crash, there will be no free copy, sorry. Also, if you’re the first person to post instructions but your instructions are confusing and I can’t follow them, and somebody else posts better instructions that are easier to follow, they may get the reward, so please try to be as clear and lucid as possible.

  6. Be sure to state the operating system you are using (10.4.11, 10.5.8, 10.6.5 or whatever), and the machine you are using (especially whether you are on an Intel machine or an old PPC computer).

  7. The crash must have occurred in the latest version of Scrivener (at the time of writing, 2.0.2, but you should always double-check you have the latest version).

  8. If the crash turns out to have been caused by an external application or plugin on your system, by an OS update problem, or anything else system-specific that is not caused by Scrivener’s code, we cannot offer a free copy or refund. The crash must be caused by a bug in Scrivener in order to qualify.

  9. There may be no free copy if the crash turns out to be in the Apple frameworks, and not in Scrivener code.

  10. You can earn more than one free licence if you report multiple crashes. If you have already received a refund, you will receive a 100% discount coupon for any future crashers for which you provide us with steps to reproduce. (Maybe you want a licence for a friend…)

  11. Only the first person to report a particular crash will get the refund or free copy. Sometimes, there may be several different ways of producing a crash that has the same underlying cause. (For instance, the same memory-related bug might be triggered by closing a project, or by hitting a keyboard shortcut, or something else.) Such cases will still be considered as a single crash, though, so the free copy will go to the first person to give me a set of steps that help me reproduce and so fix it. (The “first person” will be the first person to post in this thread with a clear set of instructions that I can follow to reproduce the crash every time.)

  12. Crashes caused by tampering with the application itself will not be considered. Likewise, crashes caused by partial or corrupted downloads or installs are exempt.

  13. I will let you know if you have won a free copy or prize. If I don’t contact you, you haven’t won, sorry - please don’t e-mail us or post here to ask if you “won”. Just post and wait to hear from us - if you don’t, then one of the reports up-thread must have beaten you to it, or I couldn’t reproduce it. I will try to post here to let people know, or to ask you to refine the instructions if they aren’t working, but I may not always get time. This offer is genuine, and I will monitor this thread carefully to ensure that those who are the first to provide clear instructions for consistently reproducing a new (or special prize) crash will get their reward.

  14. My decision is final on whether a particular report for a crash is eligible for a free licence, refund or prize. Please no cries of “unfair” - I’m doing this purely because I want to try to make Scrivener as stable as possible for everyone and will do my utmost to be as fair, but we’re not rich so can’t afford to give away copies or prizes to everyone.

  15. I have no idea how long this offer will stay open for - I may withdraw it at any time!

(Please check the latest beta version to ensure that your crasher has not already been fixed, too.)

NOTE: Please no off-topicking. Any posts here that do not give instructions to reproduce a crash, or which do not fulfil all of the above criteria, will be deleted with no discussion, sorry.

Current Special Prizes

There are the crashes I am currently desperate to track down and for which I will give cash prizes to the first person who helps me reproduce them. I’ve had dozens of crash reports about each of these, but so far I cannot find a particular set of steps to reproduce these crashes. The first person to provide me with a comprehensive and easy-to-follow set of instructions that lead to me being able to reproduce any of these crashes every time on my machine will receive a $200 cash reward.

For each of these, I have provided some sample output from the crash reporter. If you get a crash and you see similar information at the top of the crash reporter that appears, then you know you’re onto one of the cash prize crashes. :slight_smile: You can check to see whether your crash matches by looking in Scrivener’s crash reporter here:

Note that I will remove from the prize list any crashes we find ourselves, of course.

1. Memory-related crash
There is a lurking memory bug that causes Scrivener to crash. The crash may seem random, in that it may appear that different things trigger it each time. But something you did earlier while using Scrivener will have been the trigger - find that, and it will be reproducible. My guess is that this crash will only occur after a project has been closed and you continue to work on another project (or if you reopen the project after closing it, or open a different project). It is most likely caused by something lingering in memory from the closed project. Some of the crash reports seem to indicate that the crash occurs while hitting a keyboard shortcut. The crash reports for this crash may start like this:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 libobjc.A.dylib 0x97addee4 objc_msgSend + 36 1 com.apple.AppKit 0x9191909c -[NSCarbonMenuImpl _carbonUpdateStatusEvent:handlerCallRef:] + 527 2 com.apple.AppKit 0x91916c61 NSSLMMenuEventHandler + 404 3 com.apple.HIToolbox 0x99430f2f DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1567 4 com.apple.HIToolbox 0x994301f6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411 5 com.apple.HIToolbox 0x994529bb SendEventToEventTarget + 52

Or:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 libobjc.A.dylib 0x94f2aedb objc_msgSend + 27 1 com.apple.AppKit 0x909ba09c -[NSCarbonMenuImpl _carbonUpdateStatusEvent:handlerCallRef:] + 527 2 com.apple.AppKit 0x909b7c61 NSSLMMenuEventHandler + 404 3 com.apple.HIToolbox 0x942d3f2f DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1567 4 com.apple.HIToolbox 0x942d31f6 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 411 5 com.apple.HIToolbox 0x942f59bb SendEventToEventTarget + 52

Or:

[code]Application Specific Information:
objc_msgSend() selector name: mainDocument

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x996d0ed7 objc_msgSend + 23
1 com.apple.Foundation 0x960984df _nsnote_callback + 176
2 com.apple.CoreFoundation 0x9463a793 __CFXNotificationPost + 947
3 com.apple.CoreFoundation 0x9463a19a _CFXNotificationPostNotification + 186
4 com.apple.Foundation 0x9608d384 -[NSNotificationCenter postNotificationName:object:userInfo:] + 128
5 …teratureandlatte.scrivener2 0x000c6b14 -[SCRBinderController insertBinderDocument:inParent:atIndex:] + 55
6 …teratureandlatte.scrivener2 0x00051075 -[SCRMainWindowController(Actions) addNewItemAtSelection:decideTextMode:] + 4880
7 …teratureandlatte.scrivener2 0x0004d781 -[SCRMainWindowController(Actions) addNewItemAtSelection:] + 41
8 com.apple.AppKit 0x932b0c46 -[NSApplication sendAction:to:from:] + 112[/code]

To give you an idea in the sort of thing that might cause this, I fixed a similar bug just before 2.0 was released that was caused by the Scrivener Link menu. Navigating through subfolders of the Scrivener Link menu, then closing a project, then hitting a keyboard shortcut such as cmd-+, would cause the crash. My guess is that something similar will trigger this crash, too, but so far I cannot find it.

2. Crash during typing/text layout

This one has happened for a handful of users while they are typing. I have no idea what the trigger could be other than that. The start of the crash report will look like this:

[code]Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000019f00390
Crashed Thread: 0

Thread 0 Crashed:
0 com.apple.AppKit 0x919d0f80 _NSGlyphTreeGlyphRangeForCharacterRange + 1120
1 com.apple.AppKit 0x91997817 -[NSLayoutManager glyphRangeForCharacterRange:actualCharacterRange:] + 135
2 com.apple.AppKit 0x91a89329 -[NSLayoutManager(NSPrivate) _insertionPointHelperForGlyphAtIndex:] + 1382
3 com.apple.AppKit 0x91a88ccd _insertionPointHelperForCharacterAtIndex + 1555
4 com.apple.AppKit 0x919a19e9 -[NSLayoutManager(NSPrivate) _rectArrayForRange:withinSelectionRange:rangeIsCharRange:singleRectOnly:fullLineRectsOnly:inTextContainer:rectCount:rangeWithinContainer:glyphsDrawOutsideLines:] + 4091[/code]

3. Pasting into comments or footnotes

Some users have reported a crash occurring while pasting text into inspector comments or footnotes. No matter what I do, I cannot reproduce this. (Remember, I must be able to reproduce this on my machine for you to get the prize.) Here’s the sort of thing you will see at the top of the crash report for this one:

[code]Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000bf7ffe5c
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.AppKit 0x95159dfd -[NSConcreteGlyphGenerator generateGlyphsForGlyphStorage:desiredNumberOfCharacters:glyphIndex:characterIndex:] + 12
1 com.apple.AppKit 0x95473fdd -[NSGlyphGenerator(NSGlyphGenPrivate) generateGlyphsForLayoutManager:range:desiredNumberOfCharacters:startingAtGlyphIndex:completedRange:nextGlyphIndex:] + 85
2 com.apple.AppKit 0x951c458b -[NSLayoutManager(NSPrivate) _fillGlyphHoleForCharacterRange:startGlyphIndex:desiredNumberOfCharacters:] + 698
3 com.apple.AppKit 0x950ad175 _NSFastFillAllGlyphHolesForGlyphRange + 640
4 com.apple.AppKit 0x951fe435 _NSFastFillAllLayoutHolesUpToEndOfContainerForGlyphIndex + 632
5 com.apple.AppKit 0x951fdff7 -[NSLayoutManager textContainerForGlyphAtIndex:effectiveRange:] + 183
6 com.apple.AppKit 0x950c03d9 -[NSLayoutManager glyphRangeForTextContainer:] + 280
7 …iteratureandlatte.ScrAppKit 0x0033b83c KBHeightForAttributedStringDrawing + 319
8 …iteratureandlatte.ScrAppKit 0x003e27b3 -[KBTextCommentsView defaultFootnoteHeight] + 147
9 …iteratureandlatte.ScrAppKit 0x003e5a6a -[KBTextCommentsView heightForTextOfCommentAtIndex:desiredWidth:] + 151
10 …iteratureandlatte.ScrAppKit 0x003e6e6a -[KBTextCommentsView tile] + 418[/code]

4. Scrivenings font/attributes-related bug

I have no idea what is causing this one or what the trigger may be, but it seems to be related to Scrivenings mode. Here’s what I would expect to see at the top of a crash report for this one:

[code]Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.CoreFoundation 0x9590d990 CFStringGetCharactersPtr + 80
1 com.apple.AppKit 0x9277a789 -[NSMutableAttributedString(NSMutableAttributedStringKitAdditions) fixFontAttributeInRange:] + 704
2 com.apple.AppKit 0x9277a21f -[NSMutableAttributedString(NSMutableAttributedStringKitAdditions) fixAttributesInRange:] + 91
3 …iteratureandlatte.ScrAppKit 0x0033fdf0 -[KBAggregateTextStorage fixAttributesInRange:] + 74
4 com.apple.AppKit 0x92c5f6df -[NSTextStorage fontSetChanged] + 104
5 com.apple.CoreFoundation 0x95984754 -[NSArray makeObjectsPerformSelector:] + 564
6 com.apple.AppKit 0x92c5f64d +[NSTextStorage _fontSetChanged:] + 371
7 com.apple.Foundation 0x988e31c3 _nsnote_callback + 176
[/code]

5. Outline/binder/keywords (?)-related crash

I have very little information on this one. I think the crash occurs while closing a project. As it relates to an outline view, it could have something to do with the binder, the outliner, the keywords panel or the compile sheet. The top of the crash report will look like this:

[code]Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000082418018
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Application Specific Information:
objc_msgSend() selector name: outlineView:objectValueForTableColumn:byItem:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x93f23ee4 objc_msgSend + 36
1 com.apple.AppKit 0x92e523ea -[NSTableView preparedCellAtColumn:row:] + 335
2 com.apple.AppKit 0x92e51bfc -[NSTableView _dirtyVisibleCellsForKeyStateChange] + 558
3 com.apple.AppKit 0x92e515da -[NSTableView _windowChangedKeyState] + 332
4 com.apple.CoreFoundation 0x948942c0 CFArrayApplyFunction + 224
5 com.apple.AppKit 0x92d80fc9 -[NSView _windowChangedKeyState] + 127
6 com.apple.CoreFoundation 0x948942c0 CFArrayApplyFunction + 224
7 com.apple.AppKit 0x92d80fc9 -[NSView _windowChangedKeyState] + 127[/code]

6. Tiger-related page-layout crash

This is one for Tiger users only, as this seems only to affect Tiger. I have received several reports that toggling to page view in Scrivener running on Tiger can lead to a crash (several users have reported this happening in Step 19 of the tutorial). I cannot reproduce this on my copy of Tiger at all, though. The top of the crash report will look like this for this one:

[code]Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0x656e466f

Thread 0 Crashed:
0 <<00000000>> 0xfffeff20 objc_msgSend_rtp + 32
1 com.apple.AppKit 0x938e15d4 -[NSTextViewSharedData dealloc] + 232
2 com.apple.AppKit 0x938e1450 -[NSTextView dealloc] + 172
3 …iteratureandlatte.ScrAppKit 0x004785fc -[KBBaseTextView dealloc] + 128
4 …teratureandlatte.scrivener2 0x001095ec -[KMBTextView dealloc] + 248
5 com.apple.AppKit 0x937b2104 -[NSView release] + 200
6 com.apple.AppKit 0x9386846c -[NSTextView release] + 336
7 com.apple.CoreFoundation 0x907c1de0 __CFArrayReleaseValues + 436
8 com.apple.CoreFoundation 0x907c1c18 __CFArrayDeallocate + 284
9 com.apple.CoreFoundation 0x907bed54 _CFRelease + 240[/code]

Thanks again for your help!

All the best,
Keith

Just emailed steps to replicate the bug listed here:
https://forum.literatureandlatte.com/t/i-can-write-but-no-text-is-displayed/11007/1

Thanks nom (I assume you have the initial “T” for your forename as the e-mail I received didn’t mention your forum handle).

Unfortunately I couldn’t reproduce it still, even following your instructions - I have sent you an e-mail so that you can see if I’m missing anything.

Thanks again and all the best,
Keith

I think this is regarding special prize 2. In any case it’s about this bug: [url]https://forum.literatureandlatte.com/t/i-can-write-but-no-text-is-displayed/11007/1]

You’ll get a PM with links to the project file I used to reproduce the error in a minute.

Running version 2.0.4 on 10.6.6 Intel.

1 Click on Test folder.
2 Click on ‘Add’ to add document, name it ‘Crash’
3 Write text in document: ‘This is a test.’
4 Right-click document ‘Crash’ and choose ‘Convert to Folder’
5 Expand folder ‘Crash’
6 Click on ‘Add’ to add subdocument, name it ‘sub’
7 Click on folder ‘Crash’
8 Click on Group Mode ‘Scrivenings’ (if it’s not in composite view already)
9 Use mouse to highlight ‘This is a test.’
10 Hit Cmd-X
11 Click into ‘sub’ document, while staying in the same view
12 Hit Cmd-V
13 ‘This is a test.’ does not appear in document ‘sub’ (at least on my machine, and I tried a dozen times)

Cheers

P.S.: Is it just me or is there a problem with the ordered list feature in this forum?

Hi mitohund,

I’m afraid to say that I think nom has beaten you to this one (he claimed it in his post up-thread), and I believe I’ve fixed it. Please try downloading the latest beta from here:

https://forum.literatureandlatte.com/t/scrivener-2-x-update-betas-download-here/11262/1

This should fix the issue, but let me know if not. I spent a lot of this week on this bug, so you only just missed claiming it by a whisker, sorry! (I haven’t wiped no. 2 from the list yet as I’m not 100% sure they are exactly the same bug, although they look very much like it.)

Many thanks and all the best,
Keith

This may be cheating :wink:

But I’m 99% sure Lion DP4 broke Scrivener. Whenever I import any PDFs (or open existing documents, apart from templates), it bails:
pastebin.com/Yxvn75us

Fine on my MBP (DP3)…

Ouch - thanks for bringing this one to my attention. This one isn’t a Scrivener bug, though (unfortunately) - it’s a Lion bug. It seems DP4 has introduced a very nasty over-release bug into PDFDocument. I’ve reported it to Apple, with everything they need to reproduce it (it is very easy to reproduce in just a few lines of code in a test app), under bug ID # 9601466.

With a bit of luck they’ll fix it for DP5 - they are very actively fixing bugs at the moment. I’m not going to look into a workaround until closer to release, because if they fix this and I have introduced a workaround, we could end up with a nasty memory leak.

Does this mean I get a free Mac? (kidding :wink: )

Ha, yes, tell Apple you found a bug so want a refund for your Mac! :slight_smile: (Although given the number of Lion bugs I’ve found and reported in the past few weeks myself, I would have enough Macs to stock a decent-sized office if they offered a deal like this…)

This is fixed in DP5.

I was just about to post to say the same thing. Thanks whichever Apple engineer fixed this!

I seem to have a way of reproducing the memory leak crash, though it involves opening a small part of a large scriv document that I can’t post here. I’ll happily pass this on to Lit&Lat if they want to help sort this bug out that got me seriously scared this evening - I don’t want my novel first draft to have bits of it that crash scrivener when you try to edit them!

Contact me by email and I’ll pass the scrivener file along as well as instructions on how to repeat the crash.

Dave

I’m probably the least technical person here, and even trying to read through all the posts my head is spinning. So please forgive me if you’ve already addressed my particular bug. My Scrivener is crashing even before it opens, and here is the report:

Process: Scrivener [4816]
Path: /Applications/Scrivener.app/Contents/MacOS/Scrivener
Identifier: com.literatureandlatte.scrivener2
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [91]

Interval Since Last Report: 14385 sec
Crashes Since Last Report: 9
Per-App Interval Since Last Report: 0 sec
Per-App Crashes Since Last Report: 5

Date/Time: 2011-09-14 08:48:02.286 -0700
OS Version: Mac OS X 10.5.8 (9L31a)
Report Version: 6
Anonymous UUID: D00408C1-D655-4235-A5FB-6AEF0576201C

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0

Dyld Error Message:
Library not loaded: @executable_path/…/Frameworks/Sparkle.framework/Versions/A/Sparkle
Referenced from: /Applications/Scrivener.app/Contents/MacOS/Scrivener
Reason: image not found

I’d so appreciate some direction … I have a book deadline and need everything I’ve saved in Scrivener.
Thanks!
Shannon

Hi Shannon,

From the crash report, this looks as though it is just a bad install. Please try downloading Scrivener again and reinstalling it (delete it from your Applications folder first, then just install it fresh). This won’t affect any of your projects, and should get you back up and running - if not, though, let us know.

All the best,
Keith

Here I go sounding naive again … but if I delete it first, won’t it delete my projects also? Or are those stored somewhere else in the meantime?

Thanks for your help :slight_smile:

Your projects are stored elsewhere, so trashing the application won’t affect them. :slight_smile:

Got it to work … thanks so much!

I think I’ve found one.
(P.s. This is my first post - and I’ve still got 19 days of my free trial left)

  1. Open a new Scrivener Novel project.
  2. Find a website with a java applet in it.
    I’ve tried it with a few sites now, but “http://www.schubart.net/rc/” works just fine.
  3. Right click on Research, and select Add…Web Page.
  4. Add the webpage you found with a java applet
  5. Click in the applet, and use it for a second or two.
  6. Click on Novel Format, or Characters, or most other parts of the Binder ----> CRASH!!

This also seems freeze up the crash reporter once Scrivener is reopened.

Love the program - if I don’t win a copy with the bug, I’ll probably buy it anyway when my trial is up.

Tested using Scrivener 2.2, and Beta version 2.2.0.5, on Mac OS 10.6.8, iMac 2.8 GHz i7, 4GB RAM
Any other info required?

Hi,

Thanks for this. Looking at it and searching on it, it seems that this is a WebKit bug rather than a Scrivener bug, but hopefully I’ll be able to find a workaround. Either way, I didn’t know about the crash and I can reproduce it, so you certainly qualify for a free copy - I’ll PM you with the details.

Thanks!
Keith

Thank you!

Hope the bug report is helpful, and allows you to prevent further crashes in the future.

Thank again - off to do some writing :slight_smile: