diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/config.h b/src/3rdparty/javascriptcore/JavaScriptCore/config.h
index 2af2e7127ca029b12f6f2ab522eea967585b594e..6be10fcd568e06124e358685039705a4abfc5f91 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/config.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/config.h
@@ -39,10 +39,10 @@
 
 #if OS(WINDOWS)
 
-// If we don't define these, they get defined in windef.h. 
-// We want to use std::min and std::max
-#define max max
-#define min min
+// windef.h defines min and max unless NOMINMAX is defined.
+#ifndef NOMINMAX
+#  define NOMINMAX
+#endif
 
 #if !COMPILER(MSVC7) && !OS(WINCE)
 // We need to define this before the first #include of stdlib.h or it won't contain rand_s.
diff --git a/src/script/api/qscriptable.h b/src/script/api/qscriptable.h
index 2b9233497bf7ba87cfbf2b523f0a3134ea819657..4f4fdc2cc747fca87e84e809551cb02010974f8c 100644
--- a/src/script/api/qscriptable.h
+++ b/src/script/api/qscriptable.h
@@ -29,8 +29,6 @@
 #include <QtCore/qscopedpointer.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -65,6 +63,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTABLE_H
diff --git a/src/script/api/qscriptclass.h b/src/script/api/qscriptclass.h
index 74ea464800cd9d9d5dce7064eeade97b7242fe96..fbc7699a97c38271259ae56170c743eb271cb1b0 100644
--- a/src/script/api/qscriptclass.h
+++ b/src/script/api/qscriptclass.h
@@ -30,8 +30,6 @@
 #include <QtCore/qscopedpointer.h>
 #include <QtScript/qscriptvalue.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -94,6 +92,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QScriptClass::QueryFlags)
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptclasspropertyiterator.h b/src/script/api/qscriptclasspropertyiterator.h
index e83254f7fc15bda2f64523ef2b7f6daefc6c2e8e..3a946bdc468a488c47a414aa806a72540b1d8788 100644
--- a/src/script/api/qscriptclasspropertyiterator.h
+++ b/src/script/api/qscriptclasspropertyiterator.h
@@ -29,8 +29,6 @@
 #include <QtCore/qscopedpointer.h>
 #include <QtScript/qscriptvalue.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -69,6 +67,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptcontext.h b/src/script/api/qscriptcontext.h
index 7e8f8a5e370403ea1cb9b5758f02a2db839d39b8..8cbfad89e9db6840ddfec20b88715525061ad820 100644
--- a/src/script/api/qscriptcontext.h
+++ b/src/script/api/qscriptcontext.h
@@ -28,8 +28,6 @@
 
 #include <QtScript/qscriptvalue.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -98,6 +96,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptcontextinfo.h b/src/script/api/qscriptcontextinfo.h
index e03f1474bf867df01519b32374f06f7e254cc9b4..148f09a017bc605e82a50c4280759661708da573 100644
--- a/src/script/api/qscriptcontextinfo.h
+++ b/src/script/api/qscriptcontextinfo.h
@@ -31,8 +31,6 @@
 #include <QtCore/qsharedpointer.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -69,9 +67,7 @@ public:
     qint64 scriptId() const;
     QString fileName() const;
     int lineNumber() const;
-#ifdef QT_DEPRECATED
-    QT_DEPRECATED int columnNumber() const;
-#endif
+    int columnNumber() const;
 
     QString functionName() const;
     FunctionType functionType() const;
@@ -101,6 +97,4 @@ Q_SCRIPT_EXPORT QDataStream &operator>>(QDataStream &, QScriptContextInfo &);
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptengine.h b/src/script/api/qscriptengine.h
index 752d318a7f6622a49168a6a000e2b22d7ce87f52..fcfb4a2a4568824d5a84aadf89b77cb2a56457ec 100644
--- a/src/script/api/qscriptengine.h
+++ b/src/script/api/qscriptengine.h
@@ -40,8 +40,6 @@
 #include <QtScript/qscriptstring.h>
 #include <QtScript/qscriptprogram.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -445,6 +443,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QScriptEngine::QObjectWrapOptions)
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTENGINE_H
diff --git a/src/script/api/qscriptengineagent.h b/src/script/api/qscriptengineagent.h
index 8eef03bd8dd1989dae4b55a87617faf406010bd0..289ce522bf849f66f717155ecf2faa09908eb151 100644
--- a/src/script/api/qscriptengineagent.h
+++ b/src/script/api/qscriptengineagent.h
@@ -30,8 +30,6 @@
 #include <QtCore/qscopedpointer.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -86,6 +84,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptextensioninterface.h b/src/script/api/qscriptextensioninterface.h
index b1587404ea52110c96a71f96f01a9f9cc34f917d..ea9af8126597e21f6252fad2883dfc14195e492a 100644
--- a/src/script/api/qscriptextensioninterface.h
+++ b/src/script/api/qscriptextensioninterface.h
@@ -29,8 +29,6 @@
 #include <QtCore/qobject.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -48,6 +46,4 @@ Q_DECLARE_INTERFACE(QScriptExtensionInterface, QScriptExtensionInterface_iid)
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTEXTENSIONINTERFACE_H
diff --git a/src/script/api/qscriptextensionplugin.h b/src/script/api/qscriptextensionplugin.h
index a3b3a15786662f6b8693b8717fdd36c2f7cc94ba..5fad2e41149e92c5a7e545a1132f74dc06f6d6d2 100644
--- a/src/script/api/qscriptextensionplugin.h
+++ b/src/script/api/qscriptextensionplugin.h
@@ -28,8 +28,6 @@
 
 #include <QtScript/qscriptextensioninterface.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -52,6 +50,4 @@ public:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTEXTENSIONPLUGIN_H
diff --git a/src/script/api/qscriptprogram.h b/src/script/api/qscriptprogram.h
index 5bebb71ee6dc4c0d58c79f5b5ea6e56ac65671ec..0d3d413cbd26c35f5136a023bfffa3a1a0409591 100644
--- a/src/script/api/qscriptprogram.h
+++ b/src/script/api/qscriptprogram.h
@@ -29,8 +29,6 @@
 #include <QtCore/qstring.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -63,6 +61,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTPROGRAM_H
diff --git a/src/script/api/qscriptstring.h b/src/script/api/qscriptstring.h
index 40ad69169c79a83508e07e40660b0f7a73cfe1d7..f763de233519d44d32189e7a923eff5a4a02f125 100644
--- a/src/script/api/qscriptstring.h
+++ b/src/script/api/qscriptstring.h
@@ -29,8 +29,6 @@
 #include <QtCore/qsharedpointer.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -64,6 +62,4 @@ Q_SCRIPT_EXPORT uint qHash(const QScriptString &key);
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTSTRING_H
diff --git a/src/script/api/qscriptvalue.h b/src/script/api/qscriptvalue.h
index 823055f1747cc75d25f24e0c922f7ce4b34c23b2..9ea69c1aa8d5e1e0758b912528d5a6f7e4e323ab 100644
--- a/src/script/api/qscriptvalue.h
+++ b/src/script/api/qscriptvalue.h
@@ -30,8 +30,6 @@
 #include <QtCore/qsharedpointer.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -218,6 +216,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QScriptValue::PropertyFlags)
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/script/api/qscriptvalueiterator.h b/src/script/api/qscriptvalueiterator.h
index e54de0b6a441181698486d2dc14b7e49479582e4..19019b58a66f6038ea8782dc2deed63fbf0fbf2e 100644
--- a/src/script/api/qscriptvalueiterator.h
+++ b/src/script/api/qscriptvalueiterator.h
@@ -28,8 +28,6 @@
 
 #include <QtCore/qscopedpointer.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -73,6 +71,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif // QSCRIPTVALUEITERATOR_H
diff --git a/src/script/api/qtscriptglobal.h b/src/script/api/qtscriptglobal.h
index 4bc3b3171c278ba15186ab604c414c9e6587c5d8..1b74cf6917811678454eef3b06c98849efb28ca9 100644
--- a/src/script/api/qtscriptglobal.h
+++ b/src/script/api/qtscriptglobal.h
@@ -44,8 +44,6 @@
 
 #include <QtCore/qglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 #ifndef QT_STATIC
@@ -66,6 +64,4 @@ QT_BEGIN_NAMESPACE
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/src/scripttools/debugging/qscriptdebugger.cpp b/src/scripttools/debugging/qscriptdebugger.cpp
index 47a428e414f56df47c27a81c02f8e9c87930e424..24de6b78f445ab32b15b7191512d3f0212ca613c 100644
--- a/src/scripttools/debugging/qscriptdebugger.cpp
+++ b/src/scripttools/debugging/qscriptdebugger.cpp
@@ -1021,7 +1021,7 @@ class SyncBreakpointsJob : public QScriptDebuggerCommandSchedulerJob
 public:
     SyncBreakpointsJob(QScriptDebuggerPrivate *debugger)
         : QScriptDebuggerCommandSchedulerJob(debugger),
-          m_debugger(debugger), m_index(-1) {}
+          m_debugger(debugger) {}
     void start()
     {
         QScriptDebuggerCommandSchedulerFrontend frontend(commandScheduler(), this);
@@ -1044,7 +1044,6 @@ public:
 
 private:
     QScriptDebuggerPrivate *m_debugger;
-    int m_index;
     QList<QScriptContextInfo> m_infos;
 };
 
diff --git a/src/scripttools/debugging/qscriptdebuggerconsole.cpp b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
index 6baa0c9a83d61994230b917e1cab569182f8e207..c59b0617ab0b0639459133ee6411a2066314a696 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsole.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerconsole.cpp
@@ -489,7 +489,7 @@ QScriptDebuggerConsoleCommandJob *QScriptDebuggerConsole::consumeInput(
     d->input += QLatin1Char('\n');
     QScriptSyntaxCheckResult check = QScriptEngine::checkSyntax(d->input);
     if (check.state() == QScriptSyntaxCheckResult::Intermediate)
-        return false;
+        return 0;
     d->input.chop(1); // remove the last \n
     cmd = QString();
     cmd.append(d->commandPrefix);
diff --git a/src/scripttools/debugging/qscriptenginedebugger.h b/src/scripttools/debugging/qscriptenginedebugger.h
index 3f15bc39467a3751d195e32c2a28b3103f3f69f8..9589f657ae6a1bffc80c49049772ed51a78f922e 100644
--- a/src/scripttools/debugging/qscriptenginedebugger.h
+++ b/src/scripttools/debugging/qscriptenginedebugger.h
@@ -45,8 +45,6 @@
 #include <QtCore/qobject.h>
 #include <QtScript/qtscriptglobal.h>
 
-QT_BEGIN_HEADER
-
 QT_BEGIN_NAMESPACE
 
 
@@ -132,6 +130,4 @@ private:
 
 QT_END_NAMESPACE
 
-QT_END_HEADER
-
 #endif
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 1747b2e6a62b1fc21bcefad9866703891ef01206..c75f652242b436cbb46a78ddeec29b217806109c 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -2653,6 +2653,7 @@ void tst_QScriptEngine::importExtension()
     QCoreApplication::instance()->setLibraryPaths(libPaths);
 }
 
+#if 0 //The native C++ stack overflow before the JS stack
 static QScriptValue recurse(QScriptContext *ctx, QScriptEngine *eng)
 {
     Q_UNUSED(eng);
@@ -2664,6 +2665,7 @@ static QScriptValue recurse2(QScriptContext *ctx, QScriptEngine *eng)
     Q_UNUSED(eng);
     return ctx->callee().construct();
 }
+#endif
 
 void tst_QScriptEngine::infiniteRecursion()
 {