Pressing BACKSPACE in WinWord Document Causes GP Fault

ID: Q114392

6.00 6.00a 6.00c WINDOWS kbusage buglist6.00 buglist6.00a buglist6.00c fixlist7.00

The information in this article applies to:

SYMPTOMS

If you press BACKSPACE many times in a document to delete text, Word for Windows may hang (stop responding), and one of the following error messages occur:

   Application Error: WINWORD caused a General Protection Fault in
   module WINWORD.EXE at 00DE:4137

   Application Error: WINWORD caused a General Protection Fault in
   module WINWORD.EXE at 0002:1223

CAUSE

The general protection (GP) fault occurs if your document contains a bookmark at the beginning of the document. The problem is unrelated to any file format conversion you may have performed in Word.

STATUS

Microsoft has confirmed this to be a problem in Word for Windows, versions 6.0, 6.0a, and 6.0c. This problem was corrected in Word version 7.0 for Windows 95.

WORKAROUND

Method 1: To avoid this problem, use one of the following methods to delete

          large amounts of text from your Word documents:

           - Select the text, then choose Cut from the Edit menu.

             -or-

           - Select the text, then press DELETE.

Method 2: Delete the bookmark at the beginning of the document. If you need
          a bookmark at the beginning of your document, use the predefined
          (built-in) \StartOfDoc bookmark instead. Use the following
          instructions to delete a bookmark that you added to the beginning
          of your document:

          a. Press CTRL+HOME to go to the beginning of your document.

          b. From the Edit menu, choose Bookmark.

          c. From the Bookmark Name list, select the bookmark at the
             beginning of your document (it may already be selected).

          d. Choose the Delete button, and then choose the Close button.

Method 3: Create a new macro to simulate the Backspace command and assign
          it to the BACKSPACE key.

          WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THIS ARTICLE IS
          AT YOUR OWN RISK. Microsoft provides this macro code "as is"
          without warranty of any kind, either express or implied,
          including but not limited to the implied warranties of
          merchantability and/or fitness for a particular purpose.

          a. Create and save the following macro. Name it
             BackSpaceSubstitute.

             Sub MAIN
             Clear = 1
             If CmpBookmarks("\sel", "\startofdoc") <> 0 Then
                If SelType() = 1 Then
                   CharLeft 1
                   If Selection$() = Chr$(21) Then
                      CharRight 1
                      Clear = 0
                   End If
                End If
                If Clear Then EditClear
             End If
             End Sub

          b. Next, run the following macro. This macro assigns the
             BackSpaceSubstitute macro to the BACKSPACE key.

             Sub MAIN
             ToolsCustomizeKeyboard .KeyCode = 8, .Category = 1, .Name =
             "BackSpaceSubstitute", .Add, .Context = 0
             End Sub

             where the text from "ToolsCustomizeKeyboard..." to ".Context
             = 0" is all on one line.

          There are a few minor differences when using the
          BackSpaceSubstitute macro instead of the Word internal Backspace
          command:

           - When you select more than one cell of a table and you press
             the BACKSPACE key, the default action is to clear the
             contents of the first cell of the selection. The
             BackSpaceSubstitute macro clears all the contents of the
             selection, rather than clearing the contents of only the
             first cell.

           - When your insertion point is immediately to the left of the
             paragraph mark immediately following a table, the default
             backspace action is to do nothing. The BackSpaceSubstitute
             macro places the insertion point immediately to the left of
             the last end of row marker in the table.

          To reset the BACKSPACE key to the original Backspace command,
          run the following macro

          Sub MAIN
          ToolsCustomizeKeyboard .KeyCode = 8, .Category = 1, .Name =
          "BackSpaceSubstitute", .Remove, .Context = 0
          End Sub

          where the text from "ToolsCustomizeKeyboard..." to
          ".Context = 0" is all on one line.

          Note that this macro is almost identical to the one above with
          the exception of the ".Remove" parameter in place of the ".Add"
          parameter.

For more information about predefined bookmarks in Word, see pages 60-61 and 826-828 in the "Microsoft Word Developer's Kit."

IMPORTANT: The document is not truly corrupt, so standard corrupt-document troubleshooting techniques will not work for documents that experience the problem described in this article. Deleting the bookmark from the beginning of the document is the only way to "clean" the document and thereby prevent the problem from happening with this document in the future.

REFERENCES

"Microsoft Word Developer's Kit," Word version 6.0 for Windows, Microsoft Press, 1994, pages 60-61, 826-828

KBCategory: kbusage buglist6.00 buglist6.00a buglist6.00c fixlist7.00 KBSubcategory: kbformat Additional reference words: 6.00 6.00a 6.00c winword gpf hang hung crash crashed locks locked frozen freezes crashing quit quits stopped crashes word7 bomb frozen win31 errmsg cut remove erase legal

Keywords          : kbformat 
Version           : 6.00 6.00a 6.00c
Platform          : WINDOWS

Last Reviewed: February 6, 1998