How to change the font shape in the body of theorem environments?

\documentclass{article}
\usepackage{amsmath,amssymb}
\newtheorem{defn}{Definition}
\newtheorem{pro}{Problem}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{defn}
This is the first definition
\end{defn}
\begin{thm}
This is the first theorem
\end{thm}
\end{document}


When I get the output, the body of definitions, theorems is in italic letters. Can I get these environments in normal letters?

-
Also related : tex.stackexchange.com/questions/38260/… –  percusse Nov 3 '12 at 13:18
I thought I have exactly the same issue in (tex.stackexchange.com/questions/37534/…) –  karathan Nov 3 '12 at 14:11
@karathan It seems your question was also (or even for the main part) about changing the theorem header font. –  lockstep Nov 3 '12 at 14:42
@lockstep There was asking for the main part, but the answer you gave me it's covered me and for the header –  karathan Nov 3 '12 at 15:05

Without any theorem-related package (using etoolbox to patch the LaTeX kernel):

\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@begintheorem}{\itshape}{}{}{}
\patchcmd{\@opargbegintheorem}{\itshape}{}{}{}
\makeatother
\newtheorem{pro}{Problem}
\begin{document}
\begin{pro}
This is the first problem.
\end{pro}
\end{document}


With amsthm:

\documentclass{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{pro}{Problem}
\begin{document}
\begin{pro}
This is the first problem.
\end{pro}
\end{document}


With ntheorem:

\documentclass{article}
\usepackage{ntheorem}
\theorembodyfont{\normalfont}
\newtheorem{pro}{Problem}
\begin{document}
\begin{pro}
This is the first problem.
\end{pro}
\end{document}


With amsthm plus the thmtools frontend (can also be used with ntheorem):

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[bodyfont=\normalfont]{normalbody}
\declaretheorem[style=normalbody,name=Problem]{pro}
\begin{document}
\begin{pro}
This is the first problem.
\end{pro}
\end{document}

-