diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index 4b57cc3..c902eb8 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -51,7 +51,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
 
-#define GECKO_VERSION "1.5"
+#define GECKO_VERSION "1.6-beta1"
 
 #ifdef __i386__
 #define ARCH_STRING "x86"
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 9184b9b..5cc568e 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -108,7 +108,6 @@ static const tag_desc_t *get_tag_desc(const WCHAR *tag_name)
 HRESULT replace_node_by_html(nsIDOMHTMLDocument *nsdoc, nsIDOMNode *nsnode, const WCHAR *html)
 {
     nsIDOMDocumentFragment *nsfragment;
-    nsIDOMNSRange *nsrange;
     nsIDOMNode *nsparent;
     nsIDOMRange *range;
     nsAString html_str;
@@ -121,16 +120,9 @@ HRESULT replace_node_by_html(nsIDOMHTMLDocument *nsdoc, nsIDOMNode *nsnode, cons
         return E_FAIL;
     }
 
-    nsres = nsIDOMRange_QueryInterface(range, &IID_nsIDOMNSRange, (void**)&nsrange);
-    nsIDOMRange_Release(range);
-    if(NS_FAILED(nsres)) {
-        ERR("Could not get nsIDOMNSRange: %08x\n", nsres);
-        return E_FAIL;
-    }
-
     nsAString_InitDepend(&html_str, html);
-    nsIDOMNSRange_CreateContextualFragment(nsrange, &html_str, &nsfragment);
-    nsIDOMNSRange_Release(nsrange);
+    nsIDOMRange_CreateContextualFragment(range, &html_str, &nsfragment);
+    nsIDOMRange_Release(range);
     nsAString_Finish(&html_str);
     if(NS_FAILED(nsres)) {
         ERR("CreateContextualFragment failed: %08x\n", nsres);
@@ -1150,7 +1142,6 @@ static HRESULT WINAPI HTMLElement_insertAdjacentHTML(IHTMLElement *iface, BSTR w
 {
     HTMLElement *This = impl_from_IHTMLElement(iface);
     nsIDOMRange *range;
-    nsIDOMNSRange *nsrange;
     nsIDOMNode *nsnode;
     nsAString ns_html;
     nsresult nsres;
@@ -1172,19 +1163,10 @@ static HRESULT WINAPI HTMLElement_insertAdjacentHTML(IHTMLElement *iface, BSTR w
 
     nsIDOMRange_SetStartBefore(range, This->node.nsnode);
 
-    nsIDOMRange_QueryInterface(range, &IID_nsIDOMNSRange, (void **)&nsrange);
-    nsIDOMRange_Release(range);
-    if(NS_FAILED(nsres))
-    {
-        ERR("getting nsIDOMNSRange failed: %08x\n", nsres);
-        return E_FAIL;
-    }
-
     nsAString_InitDepend(&ns_html, html);
-
-    nsres = nsIDOMNSRange_CreateContextualFragment(nsrange, &ns_html, (nsIDOMDocumentFragment **)&nsnode);
-    nsIDOMNSRange_Release(nsrange);
+    nsres = nsIDOMRange_CreateContextualFragment(range, &ns_html, (nsIDOMDocumentFragment **)&nsnode);
     nsAString_Finish(&ns_html);
+    nsIDOMRange_Release(range);
 
     if(NS_FAILED(nsres) || !nsnode)
     {
diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c
index 47df09d..81e324e 100644
--- a/dlls/mshtml/htmlnode.c
+++ b/dlls/mshtml/htmlnode.c
@@ -624,7 +624,7 @@ static HRESULT WINAPI HTMLDOMNode_cloneNode(IHTMLDOMNode *iface, VARIANT_BOOL fD
 
     TRACE("(%p)->(%x %p)\n", This, fDeep, clonedNode);
 
-    nsres = nsIDOMNode_CloneNode(This->nsnode, fDeep != VARIANT_FALSE, &nsnode);
+    nsres = nsIDOMNode_CloneNode(This->nsnode, fDeep != VARIANT_FALSE, 1, &nsnode);
     if(NS_FAILED(nsres) || !nsnode) {
         ERR("CloneNode failed: %08x\n", nsres);
         return E_FAIL;
diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl
index 2327f4a..09f1ccd 100644
--- a/dlls/mshtml/nsiface.idl
+++ b/dlls/mshtml/nsiface.idl
@@ -23,7 +23,7 @@
  * compatible with XPCOM, usable in C code.
  */
 
-cpp_quote("#define GECKO_VERSION \"1.5\"")
+cpp_quote("#define GECKO_VERSION \"1.6-beta1\"")
 cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION")
 
 import "wtypes.idl";
@@ -803,7 +803,7 @@ interface nsIDOMNamedNodeMap : nsISupports
 
 [
     object,
-    uuid(ce82fb71-60f2-4c38-be31-de5f2f90dada),
+    uuid(5e9bcec9-5928-4f77-8a9c-424ef01c20e1),
     local
 ]
 interface nsIDOMNode : nsISupports
@@ -850,7 +850,7 @@ interface nsIDOMNode : nsISupports
     nsresult RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval);
     nsresult AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval);
     nsresult HasChildNodes(bool *_retval);
-    nsresult CloneNode(bool deep, nsIDOMNode **_retval);
+    nsresult CloneNode(bool deep, PRUint8 _argc, nsIDOMNode **_retval);
     nsresult Normalize();
     nsresult IsSupported(const nsAString *feature, const nsAString *version, bool *_retval);
     nsresult GetNamespaceURI(nsAString *aNamespaceURI);
@@ -1075,7 +1075,7 @@ interface nsIDOMDocumentFragment : nsIDOMNode
 
 [
     object,
-    uuid(5c3bff4d-ae7f-4c93-948c-519589672c30),
+    uuid(d7cdd08e-1bfd-4bc3-9742-d66586781ee2),
     local
 ]
 interface nsIDOMDocument : nsIDOMNode
@@ -1100,10 +1100,10 @@ interface nsIDOMDocument : nsIDOMNode
     nsresult GetDocumentURI(nsAString *aDocumentURI);
     nsresult AdoptNode(nsIDOMNode *source, nsIDOMNode **_retval);
     nsresult CreateRange(nsIDOMRange **_retval);
-    nsresult CreateNodeIterator(nsIDOMNode *root, PRUint32 whatToShow, nsIDOMNodeFilter *filter,
-            bool entityReferenceExpansion, nsIDOMNodeIterator **_retval);
-    nsresult CreateTreeWalker(nsIDOMNode *root, PRUint32 whatToShow, nsIDOMNodeFilter *filter,
-            bool entityReferenceExpansion, nsIDOMTreeWalker **_retval);
+    nsresult CreateNodeIterator(nsIDOMNode *root, PRUint32 whatToShow, nsIDOMNodeFilter *filter, PRUint8 _argc,
+            nsIDOMNodeIterator **_retval);
+    nsresult CreateTreeWalker(nsIDOMNode *root, PRUint32 whatToShow, nsIDOMNodeFilter *filter, PRUint8 _argc,
+            nsIDOMTreeWalker **_retval);
     cpp_quote("#undef CreateEvent")
     nsresult CreateEvent(const nsAString *eventType, nsIDOMEvent **_retval);
     nsresult GetDefaultView(nsIDOMWindow **aDefaultView);
@@ -1205,7 +1205,7 @@ interface nsIDOMHTMLDocument : nsIDOMDocument
 
 [
     object,
-    uuid(a6cf90ce-15b3-11d2-932e-00805f8add32),
+    uuid(a059eea8-fece-4c14-93d3-7f50a944ae43),
     local
 ]
 interface nsIDOMRange : nsISupports
@@ -1241,15 +1241,6 @@ interface nsIDOMRange : nsISupports
     nsresult CloneRange(nsIDOMRange **_retval);
     nsresult ToString(nsAString *_retval);
     nsresult Detach();
-}
-
-[
-    object,
-    uuid(fed93d11-f24d-41d8-ae55-4197927999bb),
-    local
-]
-interface nsIDOMNSRange : nsISupports
-{
     nsresult CreateContextualFragment([in] const nsAString *fragment, [out] nsIDOMDocumentFragment **_retval);
     nsresult IsPointInRange([in] nsIDOMNode *parent, [in] PRInt32 offset, [out] bool *_retval);
     nsresult ComparePoint([in] nsIDOMNode *parent, [in] PRInt32 offset, [out] PRInt16 *_retval);
@@ -1257,7 +1248,6 @@ interface nsIDOMNSRange : nsISupports
     nsresult GetBoundingClientRect(nsIDOMClientRect **_retval);
 }
 
-
 [
     object,
     uuid(5ac0cd5d-3c08-4c4c-8e70-230c433f5d5c),
@@ -1273,6 +1263,7 @@ interface nsISelection : nsISupports
     nsresult GetRangeCount(PRInt32 *aRangeCount);
     nsresult GetRangeAt(PRInt32 index, nsIDOMRange **_retval);
     nsresult Collapse(nsIDOMNode *parentNode, PRInt32 offset);
+    nsresult CollapseNative(nsINode *parentNode, PRInt32 offset);
     nsresult Extend(nsIDOMNode *parentNode, PRInt32 offset);
     nsresult CollapseToStart();
     nsresult CollapseToEnd();
@@ -1301,7 +1292,7 @@ interface nsIDOMWindowCollection : nsISupports
 
 [
     object,
-    uuid(f6e3b10d-d5f4-4fcd-aa4c-5f98626d428a),
+    uuid(17400e2b-f78b-4e69-b500-c2a3135a40fd),
     local
 ]
 interface nsIDOMWindow : nsISupports
@@ -1326,11 +1317,14 @@ interface nsIDOMWindow : nsISupports
     nsresult Focus();
     nsresult Blur();
     nsresult GetLength(PRUint32 *aLength);
-    nsresult GetTop(nsIDOMWindow **aTop);
+    nsresult GetScriptableTop(nsIDOMWindow **aTop);
+    nsresult GetRealTop(nsIDOMWindow **aRealTop);
     nsresult GetOpener(nsIDOMWindow **aOpener);
     nsresult SetOpener(nsIDOMWindow *aOpener);
-    nsresult GetParent(nsIDOMWindow **aParent);
-    nsresult GetFrameElement(nsIDOMElement **aFrameElement);
+    nsresult GetScriptableParent(nsIDOMWindow **aParent);
+    nsresult GetRealParent(nsIDOMWindow **aParent);
+    nsresult GetScriptableFrameElement(nsIDOMElement **aFrameElement);
+    nsresult GetRealFrameElement(nsIDOMElement **aFrameElement);
     nsresult GetNavigator(nsIDOMNavigator **aNavigator);
     nsresult GetApplicationCache(nsIDOMOfflineResourceList **aApplicationCache);
     nsresult Alert(const nsAString *text);
@@ -1406,7 +1400,6 @@ interface nsIDOMWindow : nsISupports
     nsresult MozCancelRequestAnimationFrame(PRInt32 aHandle);
     nsresult GetMozAnimationStartTime(PRInt64 *aMozAnimationStartTime);
     nsresult GetURL(nsIDOMMozURLProperty **aURL);
-    nsresult GetGlobalStorage(nsIDOMStorageList **aGlobalStorage);
     nsresult GetOnafterprint(JSContext *cx, jsval *aOnafterprint);
     nsresult SetOnafterprint(JSContext *cx, const jsval *aOnafterprint);
     nsresult GetOnbeforeprint(JSContext *cx, jsval *aOnbeforeprint);
@@ -2440,7 +2433,7 @@ interface nsIFile : nsISupports
 
 [
     object,
-    uuid(e162bfa0-01bd-4e9f-9843-8fb2efcd6d1f),
+    uuid(7df46a54-d8b0-448e-903c-4341a1b2499c),
     local
 ]
 interface nsIPrefBranch : nsISupports
@@ -2463,6 +2456,8 @@ interface nsIPrefBranch : nsISupports
     nsresult DeleteBranch(const char *aStartingAt);
     nsresult GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray);
     nsresult ResetBranch(const char *aStartingAt);
+    nsresult AddObserver(const char *aDomain, nsIObserver *aObserver, bool aHoldWeak);
+    nsresult RemoveObserver(const char *aDomain, nsIObserver *aObserver);
 }
 
 [
@@ -2561,7 +2556,7 @@ interface nsIWebBrowserFocus : nsISupports
 
 [
     object,
-    uuid(ba434c60-9d52-11d3-afb0-00a024ffc08c),
+    uuid(e8c414c4-dc38-4ba3-ab4e-ec4cbbe22907),
     local
 ]
 interface nsIWebBrowserChrome : nsISupports
@@ -2958,7 +2953,7 @@ interface nsIController : nsISupports
 
 [
     object,
-    uuid(dc68f070-226d-11e1-bfc2-0800200c9a66),
+    uuid(94671671-9e1b-447a-adb7-c32e056a96c9),
     local
 ]
 interface nsIContent : nsISupports
@@ -3002,7 +2997,7 @@ interface nsIContentSerializer : nsISupports
 
 [
     object,
-    uuid(20ee0b70-c528-11e0-9572-0800200c9a66),
+    uuid(656005d2-d900-4839-81bf-6274a3c38537),
     local
 ]
 interface nsIEditor  : nsISupports
@@ -3036,6 +3031,8 @@ interface nsIEditor  : nsISupports
     nsresult SetTransactionManager(nsITransactionManager *aTransactionManager);
     nsresult DoTransaction([in] nsITransaction *txn);
     nsresult EnableUndo([in] bool enable);
+    nsresult GetNumberOfUndoItems(PRInt32 *aNumberOfUndoItems);
+    nsresult GetNumberOfRedoItems(PRInt32 *aNumberOfRedoItems);
     nsresult Undo([in] PRUint32 count);
     nsresult CanUndo([out] bool *isEnabled, [out] bool *canUndo);
     nsresult Redo([in] PRUint32 count);
@@ -3060,9 +3057,6 @@ interface nsIEditor  : nsISupports
     nsresult SelectAll();
     nsresult BeginningOfDocument();
     nsresult EndOfDocument();
-    nsresult CanDrag([in] nsIDOMEvent *aEvent, [out] bool *_retval);
-    nsresult DoDrag([in] nsIDOMEvent *aEvent);
-    nsresult InsertFromDrop([in] nsIDOMEvent *aEvent);
     nsresult SetAttribute([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [in] const nsAString *attvalue);
     nsresult GetAttributeValue([in] nsIDOMElement *aElement, [in] const nsAString *attributestr, [out] nsAString *resultValue, bool *_retval);
     nsresult RemoveAttribute([in] nsIDOMElement *aElement, [in] const nsAString *aAttribute);
@@ -3092,7 +3086,7 @@ interface nsIEditor  : nsISupports
 
 [
     object,
-    uuid(d58f35a7-c269-4292-b9aa-a79e200a7c99),
+    uuid(ff67ad39-ed58-4cd1-a1a3-dcd988390a97),
     local
 ]
 interface nsIHTMLEditor : nsISupports
@@ -3108,9 +3102,6 @@ interface nsIHTMLEditor : nsISupports
     nsresult RemoveInlineProperty([in] nsIAtom *aProperty, [in] nsAString *aAttribute);
     nsresult IncreaseFontSize();
     nsresult DecreaseFontSize();
-    nsresult CanDrag([in] nsIDOMEvent *aEvent, [out] bool *_retval);
-    nsresult DoDrag([in] nsIDOMEvent *aEvent);
-    nsresult InsertFromDrop([in] nsIDOMEvent *aEvent);
     nsresult NodeIsBlock([in] nsIDOMNode *node, bool *_retval);
     nsresult InsertHTML([in] nsAString *aInputString);
     nsresult PasteNoFormatting([in] PRInt32 aSelectionType);
@@ -3143,7 +3134,6 @@ interface nsIHTMLEditor : nsISupports
     nsresult InsertLinkAroundSelection([in] nsIDOMElement *aAnchorElement);
     nsresult SetBackgroundColor([in] nsAString *aColor);
     nsresult SetBodyAttribute([in] nsAString *aAttr, [in] nsAString *aValue);
-    nsresult IgnoreSpuriousDragEvent([in] bool aIgnoreSpuriousDragEvent);
     nsresult GetLinkedObjects([out] nsISupportsArray **_retval);
     nsresult GetIsCSSEnabled([out] bool *_retval);
     nsresult SetIsCSSEnabled([in] bool prb);
@@ -3161,7 +3151,7 @@ interface nsIHTMLEditor : nsISupports
 
 [
     object,
-    uuid(0666adf8-8738-4ca7-a917-0348f47d2f40),
+    uuid(dbd39c21-5788-4c68-9d97-0fcee289bce1),
     local
 ]
 interface nsIDocShell : nsISupports
@@ -3183,8 +3173,6 @@ interface nsIDocShell : nsISupports
     nsresult GetContentViewer(nsIContentViewer **aContentViewer);
     nsresult GetChromeEventHandler(nsIDOMEventTarget **aChromeEventHandler);
     nsresult SetChromeEventHandler(nsIDOMEventTarget *aChromeEventHandler);
-    nsresult GetDocumentCharsetInfo(nsIDocumentCharsetInfo **aDocumentCharsetInfo);
-    nsresult SetDocumentCharsetInfo(nsIDocumentCharsetInfo *aDocumentCharsetInfo);
     nsresult GetAllowPlugins(bool *aAllowPlugins);
     nsresult SetAllowPlugins(bool aAllowPlugins);
     nsresult GetAllowJavascript(bool *aAllowJavascript);
@@ -3250,6 +3238,16 @@ interface nsIDocShell : nsISupports
     nsresult GetIsAppTab(bool *aIsAppTab);
     nsresult SetIsAppTab(bool aIsAppTab);
     nsresult CreateAboutBlankContentViewer(nsIPrincipal *aPrincipal);
+    nsresult GetCharset(char **aCharset);
+    nsresult SetCharset(const char * aCharset);
+    nsresult GetForcedCharset(nsIAtom **aForcedCharset);
+    nsresult SetForcedCharset(nsIAtom *aForcedCharset);
+    nsresult GetParentCharset(nsIAtom **aParentCharset);
+    nsresult SetParentCharset(nsIAtom *aParentCharset);
+    nsresult GetParentCharsetSource(PRInt32 *aParentCharsetSource);
+    nsresult SetParentCharsetSource(PRInt32 aParentCharsetSource);
+    nsresult GetIsBrowserFrame(bool *aIsBrowserFrame);
+    nsresult SetIsBrowserFrame(bool aIsBrowserFrame);
 }
 
 [
@@ -3279,7 +3277,7 @@ interface nsIMutationObserver : nsISupports
 
 [
     object,
-    uuid(c9169398-897a-481d-a95f-d6606ef83756),
+    uuid(d064f0d6-44e3-4366-a705-cf7a912614b6),
     local
 ]
 interface nsIParser : nsISupports
@@ -3287,6 +3285,10 @@ interface nsIParser : nsISupports
     typedef int nsDTDMode;
     typedef int eParserCommands;
 
+    /* From nsParserBase: */
+    bool IsParserEnabled();
+    nsresult GetChannel(nsIChannel **aChannel);
+
     void SetContentSink(nsIContentSink *aSink);
     nsIContentSink *GetContentSink();
     void GetCommand(nsACString *aCommand);
@@ -3294,24 +3296,20 @@ interface nsIParser : nsISupports
     void SetCommand(eParserCommands aParserCommand);
     void SetDocumentCharset(const nsACString *aCharset, PRInt32 aSource);
     void GetDocumentCharset(nsACString *oCharset, PRInt32 *oSource);
-    void SetParserFilter(nsIParserFilter *aFilter);
-    nsresult GetChannel(nsIChannel **aChannel);
     nsresult GetDTD(nsIDTD **aDTD);
     nsIStreamListener *GetStreamListener();
     nsresult ContinueInterruptedParsing();
     void BlockParser();
     void UnblockParser();
-    bool IsParserEnabled();
+    void ContinueInterruptedParsingAsync();
     bool IsComplete();
     nsresult Parse(nsIURI *aURL, nsIRequestObserver *aListener, void *aKey, nsDTDMode aMode);
     nsresult Parse2(const nsAString *aSourceBuffer, void *aKey, const nsACString *aMimeType, bool aLastCall, nsDTDMode aMode);
-    void *GetRootContextKey();
     nsresult Terminate();
     nsresult ParseFragment(const nsAString *aSourceBuffer, void /*nsTArray<nsString>*/ *aTagStack);
     nsresult BuildModel();
     nsresult CancelParsingEvents();
     void Reset();
-    bool CanInterrupt();
     bool IsInsertionPointDefined();
     void BeginEvaluatingParserInsertedScript();
     void EndEvaluatingParserInsertedScript();
